Wikibooks
plwikibooks
https://pl.wikibooks.org/wiki/Wikibooks:Strona_g%C5%82%C3%B3wna
MediaWiki 1.47.0-wmf.18
first-letter
Media
Specjalna
Dyskusja
Wikipedysta
Dyskusja wikipedysty
Wikibooks
Dyskusja Wikibooks
Plik
Dyskusja pliku
MediaWiki
Dyskusja MediaWiki
Szablon
Dyskusja szablonu
Pomoc
Dyskusja pomocy
Kategoria
Dyskusja kategorii
Wikijunior
Dyskusja Wikijuniora
TimedText
TimedText talk
Moduł
Dyskusja modułu
Wydarzenie
Dyskusja wydarzenia
Asembler x86/Architektura
0
5758
554135
445319
2026-09-03T10:15:31Z
Blakocha
36799
jęz.
554135
wikitext
text/x-wiki
Nadeszła pora na omówienie budowy procesora z punktu widzenia programisty.
== Rejestry ==
W procesorach z rodziny 80x86<ref>Poczynając od 80386.</ref> wyróżniamy następujące rejestry (w nawiasach podano ich rozmiar):
* 8 rejestrów ogólnego przeznaczenia [32 bity]
* 6 rejestrów segmentowych [16 bitów]
* rejestr flag [32 bity]
* wskaźnik instrukcji - EIP [32 bity]
* 8 rejestrów jednostki zmiennoprzecinkowej procesora (w procesorach nowszych od 80386), kiedyś koprocesora arytmetycznego [80 bitów]
* w nowszych procesorach 8 rejestrów rozszerzeń MMX/3DNow/3DNow! [64 bity]
* w nowszych procesorach 8 rejestrów XMM rozszerzeń SSE, SSE2, SSE3 [128 bitów]
Dokładny opis wszystkich rejestrów poniżej.
=== Rejestr EIP ===
Rejestr EIP (ang. ''extended insertion point''), dawniej po prostu IP (jeszcze 16-bitowy) wskazuje na adres aktualnie wykonywanej instrukcji. Procesor ma zapętlony sposób działania: pobiera instrukcję, wykonuje ją i, na koniec cyklu, zwiększa zawartość rejestru EIP o długość wykonanej instrukcji. W razie uruchomienia programu, początkowo rejestr EIP wskazuje na początek segmentu kodu.
=== Rejestry ogólnego przeznaczenia ===
Jak sama nazwa wskazuje, służą do wykonywania przeróżnych, nieokreślonych z góry czynności, takich jak np.:
* przechowywanie operandów i wyników obliczeń arytmetycznych i logicznych
* służą jako liczniki (głównie rejestr '''ECX''')
* funkcjonują jako przechowalnie argumentów
Pisząc program w asemblerze, prawie na pewno będziesz korzystał z tej grupy rejestrów.
{| style="width: 90%;"
|+ '''Rejestry ogólnego przeznaczenia'''
| bgcolor="#ADD8E6"|
{| border="1" cellspacing="0" style="width: 3.125%; text-align:center;"
|+ '''8 bitów'''
| bgcolor="#ADD8E6" height="19 px" width="100%"|
|}
{| align="center" border="1" cellspacing="0" style="width: 90%; text-align:center;"
| bgcolor="#ADD8E6" colspan="2" width="6.25%"|
| bgcolor="#ADD8E6" width="3.125%"|AH
| bgcolor="#ADD8E6" width="3.125%"|AL
| bgcolor="#ADD8E6" colspan="2" width="6.25%"|
| bgcolor="#ADD8E6" width="3.125%"|BH
| bgcolor="#ADD8E6" width="3.125%"|BL
| bgcolor="#ADD8E6" colspan="2" width="6.25%"|
| bgcolor="#ADD8E6" width="3.125%"|CH
| bgcolor="#ADD8E6" width="3.125%"|CL
| bgcolor="#ADD8E6" colspan="2" width="6.25%"|
| bgcolor="#ADD8E6" width="3.125%"|DH
| bgcolor="#ADD8E6" width="3.125%"|DL
| bgcolor="#ADD8E6" colspan="16"|
|--
| bgcolor="#B0C4DE" colspan="2"|
| bgcolor="#B0C4DE" colspan="2"|AX
| bgcolor="#B0C4DE" colspan="2"|
| bgcolor="#B0C4DE" colspan="2"|BX
| bgcolor="#B0C4DE" colspan="2"|
| bgcolor="#B0C4DE" colspan="2"|CX
| bgcolor="#B0C4DE" colspan="2"|
| bgcolor="#B0C4DE" colspan="2"|DX
| bgcolor="#B0C4DE" colspan="2" width="6.25%"|
| bgcolor="#B0C4DE" colspan="2" width="6.25%"|SP
| bgcolor="#B0C4DE" colspan="2" width="6.25%"|
| bgcolor="#B0C4DE" colspan="2" width="6.25%"|BP
| bgcolor="#B0C4DE" colspan="2" width="6.25%"|
| bgcolor="#B0C4DE" colspan="2" width="6.25%"|SI
| bgcolor="#B0C4DE" colspan="2" width="6.25%"|
| bgcolor="#B0C4DE" colspan="2" width="6.25%"|DI
|--
| bgcolor="#1E90FF" colspan="4"|EAX
| bgcolor="#1E90FF" colspan="4"|EBX
| bgcolor="#1E90FF" colspan="4"|ECX
| bgcolor="#1E90FF" colspan="4"|EDX
| bgcolor="#1E90FF" colspan="4"|ESP
| bgcolor="#1E90FF" colspan="4"|EBP
| bgcolor="#1E90FF" colspan="4"|ESI
| bgcolor="#1E90FF" colspan="4"|EDI
|}
<br />
'''EAX''' - używany głównie w czasie operacji arytmetycznych<br />
'''EBX''' - rejestr bazowy, wraz z rejestrem segmentowym DS tworzą wskaźnik na przestrzeń danych<br />
'''ECX''' - rejestr służący głownie jako licznik w zapętlonych operacjach<br />
'''EDX''' - rejestr danych, używany do operacji arytmetycznych oraz obsługi wejścia-wyjścia<br />
'''ESP''' - wskaźnik wierzchołka stosu<br />
'''EBP''' - wskaźnik do danych w segmencie stosu<br />
'''ESI''' - rejestr indeksowy, wskaźnik źródła<br />
'''EDI''' - rejestr indeksowy, wskaźnik przeznaczenia<br />
|}
Jak widać powyżej, wszystkie 8 powyższych rejestrów dzieli się na mniejsze, rejestry składowe. Zmodyfikowanie wartości rejestru składowego modyfikuje kawałek rejestru, którego jest częścią (reszta bitów rejestru-rodzica pozostaje bez zmian).<br />
Podział ten wywodzi się z procesorów 8086, gdzie rejestry procesora były 16-bitowe i nazywały się kolejno AX, BX itd. Umożliwienie korzystania z tych rejestrów wiąże się z zapewnieniem kompatybilności starszych programów z nowymi procesorami. Tworząc procesory z 32-bitowymi rejestrami dopisano do ich nazw literkę E (''Extended'').
=== Rejestry segmentowe ===
W pamięci komputera przechowywane są instrukcje dla procesora oraz inne dane, które podlegają przetwarzaniu. Aby procesor "wiedział" co oznaczają poszczególne dane stosuje się tzw. rejestry segmentowe. To właśnie te rejestry umożliwiają wskazanie fragmentów pamięci zawierających kod maszynowy (tzn. te dane procesor może wykonać) oraz obszary danych. Tak naprawdę, ich rola aktualnie nie jest tak duża, jak była w czasach 80286 oraz wcześniejszych. Ponadto, w procesorze 8086 rejestry segmentowe dzieliły całą dostępną przestrzeń adresową na 64-kilobajtowe '''segmenty''', czyli coś w rodzaju "okienek", przez które można było dostać się do pamięci.
Rejestry segmentowe:
*'''CS''' - segment kodu
*'''DS''' - segment danych
*'''SS''' - segment stosu
*'''ES''' - dodatkowy segment danych
*'''FS''' - dodatkowy segment danych
*'''GS''' - dodatkowy segment danych
Wszystkie z tych rejestrów istniały już w procesorach 8086 poza FS i GS, które zostały wprowadzone w procesorze 80386. Ich rola jest nieco odmienna w różnych modelach pamięci.
==== Segmentowy model pamięci ====
{| class="wikitable" align="left"
! procesor
! wielkość magistrali adresowej
! max. wielkość pamięci operacyjnej
|----
| 8088
| 20 bitów
| 1 MB
|----
| 8086
| 20 bitów
| 1 MB
|----
| 80286
| 24 bity
| 16 MB
|----
| 80386
| 32 bity
| 4 GB
|----
| 80486
| 32 bity
| 4 GB
|----
| 80586
| 32 bity
| 4 GB
|----
| 80686
| 36 bitów
| 64 GB <ref>Możliwość taką daje rozszerzenie PAE, musi być ono jednak obsługiwane także przez system operacyjny. W praktyce nie stosuje się tego rozwiązania w komputerach domowych.</ref>
|}
[[Grafika:Asembler_adresowanie.png|right]]
Segmentowy model pamięci jest wykorzystywany np. w systemie MS-DOS. Filozofia tegoż podziału polega na tym, iż program może mieć w pamięci operacyjnej wydzielone 3 obszary (segmenty): kodu, danych oraz stos. W segmencie kodu przechowywany jest kod naszego programu, w segmencie danych, jak mówi nazwa, program posiada własny obszar, gdzie przechowuje najróżniejsze dane; zaś stos jest to obszar pamięci, który zasługuje na dokładniejszy opis. Jest on opisany niżej, jeszcze w tym podrozdziale.<br />
Wyżej wymienione rejestry CS, DS, SS, będą przechowywać adres w pamięci owych segmentów wg opisu. Jeśli zdecydujemy się na utworzenie kilku segmentów danych, ich adresy mogą być przechowywane w rejestrach ES, FS i GS.<br />
Odwoływanie się do konkretnego adresu (w tym modelu organizacji pamięci) odbywa się przy użyciu dwóch liczb, których rozmiar jest zależny od naszego procesora (patrz: tabela po lewej). Pierwsza z nich wskazuje na adres segmentu, w którym znajduje się komórka; zaś druga liczba jest przesunięciem, czyli odległością pomiędzy adresem komórki i adresem początku segmentu, w który się znajduje. Wartość tę będziemy nazywać ''offsetem''. Jego rozmiar jest również zależny od naszego procesora i, jak można się domyślić, proporcjonalnie do jego rozmiaru wzrasta maksymalny rozmiar pojedynczego segmentu w pamięci, gdyż musi dać dostęp do każdej komórki segmentu, licząc od jego początku (obecnie są to przynajmniej 32 bity, czyli maksymalny rozmiar segmentu będzie wynosić 4 GB). Aby określić konkretny fizyczny adres, używa się zapisu - '''x:y'''. Gdzie x to adres segmentu, zaś y to offset.
==== Płaski model pamięci ====
[[grafika:Soppmp.png|right]]
Z ang. ''flat model''. Jest to sposób organizacji pamięci wykorzystywany przez np. system Windows i systemy z rodziny Unix. Jest on odmianą segmentowego modelu pamięci, który jest rozwinięty o ochronę przed zapisem. Płaski model pamięci funkcjonuje wyłącznie na procesorach 32-bitowych i tylko w trybie chronionym. Ten model polega na tym, że cała pamięć dostępna dla systemu operacyjnego jest traktowana jako jeden wielki segment. Może on mieć rozmiar maksymalnie 4 GB (włącznie z wszystkimi fizycznymi i wirtualnymi zasobami RAM). Słusznie zatem można byłoby stwierdzić, że dostępna pamięć jest jedną, wielką, jednowymiarową tablicą jak w językach wysokiego poziomu, np C/C++ czy Pascal. Wspomniany segment nazywany jest przestrzenią adresową, zaś każdy uruchomiony program posiada własna taką przestrzeń. Dzięki jej istnieniu program nie może wyjść poza swój segment (przestrzeń) danych. Dodatkowo, segment ten, z perspektywy naszego programu, ma adres 0 (do adresowania używamy więc tylko offsetu). Co więcej, '''wszystkie''' wyżej wymienione rejestry segmentowe tj. CS, DS, SS, ES, FS i GS wskazują na początek segmentu danych przydzielonego naszemu programowi (który ma adres 0). Wyjście poza przydzieloną dla programu przestrzeń adresową w jakikolwiek sposób doprowadzi do wkroczenia systemu operacyjnego i wyłączenia naszego programu wraz ze zgłoszeniem komunikatu "Naruszenie ochrony pamięci". Dzięki płaskiemu modelowi pamięci, program jest wykonywany szybciej, gdyż procesor nie musi obliczać adresu komórki jak w adresowaniu ''segment:offset''.
<br />
==== Stos ====
[[Plik:Stack (data structure).svg|thumb|left|Stos,ogólne wyobrażenie]]
Stos jest wyjątkowym segmentem, którego struktura wymaga dokładniejszego opisu. Jak sama nazwa wskazuje, działa na zasadzie podobnej do stosu jakichś rzeczy, którą obrazuje rysunek (taki sposób organizacji nazywamy z ang. LIFO, ''last-in, first-out''). Elementy w stosie kładziemy "jeden na drugim". Tzn. aby nałożyć element nr. 3, najpierw kładziemy elementy 1 i 2. Gdy chcemy się pozbyć 2. elementu ze stosu, nie możemy tego zrobić dopóki nie pozbędziemy się 3.<br />
Jednakże trzeba koniecznie wspomnieć, że stos ma specyficzną budowę. Mianowicie rośnie w dół. Zatem jeśli chcesz go sobie wyobrazić jako poukładane książki jedna na drugiej jak robiłeś do tej pory to należy wprowadzić poprawkę na to wyobrażenie. Wyobraź sobie że stos tworzysz wbrew wszelkim prawom grawitacji na suficie. Jeśli coś dokładasz to rośnie on w dół czyli w kierunku podłogi pomieszczenia. Odwrotnie się dzieje gdy coś ze stosu zdejmujesz. Taka konstrukcja stosu w komputerze była po prostu ułatwieniem dla jego konstruktorów i projektantów.
W obecnych modelach pamięci, na stos można umieszczać jedynie wartości 16- i 32-bitowe. W grupie rejestrów procesora x86 wyróżniamy trzy rejestry związane ze stosem: SS -przechowuje adres stosu (nie dotyczy płaskiego modelu pamięci!), ESP -będący adresem wierzchołka stosu oraz EBP, którego funkcję omówimy poniżej. Wywołania funkcji ingerują w specyficzny sposób w strukturę stosu. Opiszę ją poniżej.<br /><br />
[[grafika:Segment_stosu.jpg|290px|right]]
Przed wywołaniem funkcji musimy najpierw umieścić na stosie argumenty dla niej, w odwrotnej kolejności niż są wymienione w pliku nagłówkowym/dokumentacji. Gdy już to zrobimy, mamy na stosie kilka argumentów ułożonych jeden na drugim. Następnie wywołujemy naszą funkcję. Po wywołaniu, jeszcze przed przeskokiem w miejsce pamięci (gdzie znajduje się kod naszej funkcji), automatycznie na stos odkładana jest wartość rejestru EIP (opisanego już wcześniej), która po tej operacji "leży" bezpośrednio na naszych argumentach. W następnej kolejności, na stos wrzucona zostaje zawartość rejestru EBP, po czym nadana zostaje mu nowa wartość (jego rola w całym procesie za chwilę zostanie opisana). Zapamiętaną wartość określamy skrótem SFP (ang. ''Stack Frame Pointer'' - wyjaśnienie poniżej). Na koniec, na szczyt naszego stosu wrzucane są kolejno wszystkie zmienne lokalne wykorzystywane przez naszą funkcję i cały proces kończy się. Końcowy efekt obrazuje grafika po prawej (oczywiście ilość argumentów i lokalnych zmiennych, czy ewentualnie buforów, jest tutaj zupełnie przykładowa).<br \>
Jak widać na niej, rejestr EBP wskazuje na adres SFP. Cały opisany obszar na rysunku nazywamy '''ramką stosu'''.<br />
Gdy funkcja kończy swoje działanie, przywracana jest wartość rejestrów EIP oraz EBP, a następnie cała ramka zostaje wyrzucona ze szczytu stosu.<br />
Jak wspomniałem należy również pamiętać, że stos rozpina się od górnych obszarów pamięci ku dolnym. Dołożenie czegokolwiek na stos powoduje zmniejszenie wartości rejestru ESP, zaś zabranie czegoś powoduje jego zwiększenie.
<br /><br /><br /><br /><br />
{{Infobox|Opcjonalnie, między SFP a zmiennymi lokalnymi mogą pojawić się wartości rejestrów zachowane na czas wykonania funkcji (praktyczna strona zagadnienia - w rozdziale [[Asembler x86/Funkcje|Funkcje]]).}}
=== Rejestr flag ===
Programista programujący w asemblerze ma wyjątkową możliwość kontrolowania ustawień samego procesora. Możliwe jest to dzięki tzw. '''rejestrowi flag'''. To w nim zapisane są takie ustawienia, jak np. możliwość korzystania z instrukcji wejścia-wyjścia przez nasz program. Ponadto, w rejestrze tym zapisywanych jest wiele informacji nt. ostatnio przeprowadzanej operacji arytmetycznej. Tak jak poprzednie rejestry, również posiada swoją starszą wersję (FLAGS), która stanowi jego pierwszą połowę (16 pierwszych bitów). Rejestr EFLAGS wygląda tak (rozkład bitów):
{| width=100% style="text-align: center; width: 100%;"
| 31 || 30 || 29 || 28 || 27 || 26 || 25 || 24 || 23 || 22 || 21 || 20 || 19 || 18 || 17 || 16
|- style="background-color: blue; color: white;"
| 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || 0 || ID || VIP || VIF || AC || VM || RF
|-
! colspan=16 height=5 |
|-
! colspan=16 style="background-color: black;" |
|-
| 15 || 14 || 13 || 12 || 11 || 10 || 9 || 8 || 7 || 6 || 5 || 4 || 3 || 2 || 1 || 0
|- style="background-color: #777777; color: white;"
| 0 || NT
! colspan=2 | IOPL
| OF || DF || IF || TF || SF || ZF || 0 || AF || 0 || PF || 1 || CF
|}
Opiszę teraz poszczególne flagi:<br />
{| class="wikitable" align="center"
|+ '''znaczniki, których wartość zależna jest jedynie od ostatniego działania arytmetycznego'''
! ID
! ang. nazwa
! równy 1 gdy
|----
| CF
| ''carry flag''
| w wyniku dodawania/odejmowania przekroczono możliwy zakres wartości zmiennej
|----
| PF
| ''parity flag''
| liczba jedynek w najmłodszym bajcie jest parzysta
|----
| AF
| ''auxiliary flag''
| wystąpiło przeniesienie z bitu 3. na 4. lub pożyczka z 4. na 3.
|----
| ZF
| ''zero flag''
| wynik ostatniego działania wyniósł 0
|----
| SF
| ''sign flag''
| bit znaku jest równy 1 (liczba jest ujemna)
|----
| OF
| ''overflow flag''
| bit znaku zmienił swoją wartość, ale nie doszło do przeniesienia poza zakres (tzn. CF=0)
|---- align="center"
| colspan="3" | '''pozostałe znaczniki ze zmienną wartością'''
|----
| NT
| ''nested task''
| obecny proces nie wywodzi się z żadnego innego (nie wywołano go poprzez CALL; nie dotyczy JMP)
|----
| RF
| ''resume flag''
| wystąpiło przerwanie zatrzymujące wykonanie programu (może wystąpić tylko, gdy TF=1)
|----
| VIP
| ''virtual interrupt pending''
| trwa wirtualne przerwanie
|----
| ID
| ''ID flag''
| jeśli można zmienić jej wartość oznacza to, że procesor obsługuje instrukcję CPUID
|}
<br />
{| class="wikitable"
|+ '''znaczniki, które mają wpływ na sposób działania procesora'''
! ID
! ang. nazwa
! gdy równy 1
|----
| TF
| ''trap flag''
| procesor wchodzi w tryb pracy krokowej, dzięki czemu po każdym wykonanym poleceniu generuje przerwanie i przechodzi do odpowiednich procedur obsługi (wykorzystywane przez np. debuggery)
|----
| IF
| ''interrupt flag''
| przerwania są uwzględniane (w przeciwnym wypadku są ignorowane)
|----
| DF
| ''direction flag''
| przetwarzanie łańcuchów odbywa się w normalny sposób, ku rosnącym adresom; w przeciwnym wypadku w dół, ku malejącym
|----
| IOPL
| ''input-output privilage level''
| odczyt/zapis z/do wyjścia jest dozwolony; jest to 2-bitowa flaga
|----
| VM
| ''virtual 8086 mode''
| przejście w tryb emulacji procesora 8086
|----
| VIF
| ''virtual interrupt flag''
| przerwania są dozwolone (kopia IF w trybie wirtualnym); aby tryb wirtualny został aktywowany musi zostać włączona flaga VME w rejestrze CR4
|}
=== Rejestry kontrolne ===
Ponadto architektura i386 definiuje kilka rejestrów kontrolnych:
* CR0
Ten rejestr ma długość 32 bitów na procesorze 386 lub wyższym. Na procesorze x86-64 analogicznie rejestr ten jak i inne kontrolne ma długość 64 bitów. CR0 ma wiele różnych flag, które mogą modyfikować podstawowe operacje procesora. Nas jednak będą interesowały szczególnie 6 bitów tego rejestru - dolne 5 (od PE do ET) oraz najwyższy bit (PG). Tabelka przedstawia rejestr CR0 (domyślnie dana operacja jest włączona gdy bit jest ustawiony, czyli ma wartość 1):
{| class="wikitable"
! Bit !! Nazwa !!Nazwa angielska!! Opis
|-
| 31 || PG || Paging Flag|| Jeśli ustawiony na 1, stronicowanie włączone. Jeśli bit ma wartość 0 to wyłączone
|-
| 30 || CD || Cache disable|| Wyłącz pamięć cache
|-
| 29 || NW || Not Write-Through || Zapis do pamięci, czy przez cache
|-
| 18 || AM || Aligment Mask|| Maska wyrównania. Aby ta opcja działała musi być ustawiona na 1, bit AC z rejestrów flag procesora również musi mieć wartość 1 oraz poziom uprzywilejowania musi wynosić 3.
|-
| 16 || WP || Write Protection|| Ochrona zapisu
|-
| 5 || NE || Numeric Error|| Numeryczny błąd, włącza wewnętrzne raportowanie błędów FPU gdy jest ten bit ustawiony
|-
| 4 || ET || Extension Type|| Typ rozszerzenia. Ta flaga mówi nam jaki mamy koprocesor. Jeśli 0 to 80287, gdy 1 to 80387
|-
| 3 || TS || Task switched|| Przełączanie zadań, pozwala zachować zadania x87
|-
| 2 || EM || Emulate Flag|| Jeśli jest ustawiona nie ma żadnego koprocesora. W przeciwnym wypadku jest obecność jednostki x87
|-
| 1 || MP || Monitor Coprocessor|| Monitor Koprocesora, kontroluje instrukcje WAIT/FWAIT
|-
| 0 || PE || Protection Enabled|| Jeśli 1 system jest w trybie chronionym. Gdy PE ma wartość 0 procesor pracuje w trybie rzeczywistym
|}
* CR1
Ten rejestr jest zarezerwowany i nie mamy do niego żadnego dostępu.
* CR2
CR2 zawiera wartość będącą błędem w adresowaniu pamięci (ang. ''Page Fault Linear Address''). Jeśli dojdzie do takiego błędu, wówczas adres miejsca jego wystąpienia jest przechowywany właśnie w CR2.
* CR3
Używany tylko jeśli bit PG w CR0 jest ustawiony.CR3 umożliwia procesorowi zlokalizowanie położenia tablicy katalogu stron dla obecnego zadania. Ostatnie (wyższe) 20 bitów tego rejestru wskazują na wskaźnik na katalog stron zwany PDBR (ang. ''Page Directory Base Register'').
* CR4
Używany w trybie chronionym w celu kontrolowania operacji takich jak wsparcie wirtualnego 8086, technologii stronicowania pamięci, kontroli błędów sprzętowych i innych.
{| class="wikitable"
! Bit !! Nazwa !! Nazwa angielska !! Opis
|-
| 13 || VMXE || Enables VMX || Włącza operacje VMX
|-
| 10 || OSXMMEXCPT || Operating System Support for Unmasked SIMD Floating-Point Exceptions || Wsparcie systemu operacyjnego dla niemaskowalnych wyjątków technologii SIMD
|-
| 9 || OSFXSR || Operating system support for FXSAVE and FXSTOR instructions|| Wsparcie systemu operacyjnego dla instrukcji FXSAVE i FXSTOR
|-
| 8 || PCE || Performance-Monitoring Counter Enable || Licznik monitora wydajności. Jeśli jest ustawiony rozkaz RDPMC może być wykonany w każdym poziomie uprzywilejowania. Zaś jeśli wartość tego bitu wynosi 0, rozkaz może być wykonany tylko w trybie jądra (poziom 0)
|-
| 7 || PGE || Page Global Enabled || Globalne stronicowanie
|-
| 6 || MCE || Machine Check Exception || Sprawdzanie błędów sprzętowych jeśli bit ten ma wartość 1. Dzięki temu możliwe jest wyświetlenie przez system operacyjny danych na temat tego błędu jak np w systemie Windows na "błękintym ekranie śmierci"
|-
| 5 || PAE || Physical Address Extension || Jeśli bit jest ustawiony to zezwalaj na użycie 36-bitowej fizycznej pamięci
|-
| 4 || PSE || Page Size Extensions || Rozszerzenie stronicowania pamięci. Jeśli 1 to stronice mają wielkość 4 MB, w przeciwnym przypadku 4 KB
|-
| 3 || DE || Debugging Extensions || Rozszerzenie debugowania
|-
| 2 || TSD || Time Stamp Disable || Jeśli ustawione, rozkaz RDTSC może być wykonany tylko w poziomie uprzywilejowania 0 (czyli w trybie jądra), zaś gdy równe 0 w każdym poziomie uprzywilejowania
|-
| 1 || PVI || Protected Mode Virtual Interrupts|| Jeśli ustawione to włącza sprzętowe wsparcie dla wirtualnej flagi przerwań (VIF) w trybie chronionym
|-
| 0 || VME || Virtual 8086 Mode Extensions || Podobne do wirtualnej flagi przerwań
|}
{{TODO|Niech ktoś to po mnie nieco poprawi/skoryguje - [[Wikipedysta:Doles|Doles]]}}
=== Rejestry jednostki zmiennoprzecinkowej ===
[[Grafika:Stos_fpu.jpg|thumb|left|Schemat stosu danych FPU]]
Zostały wprowadzone po raz pierwszy w koprocesorze arytmetycznym Intela (lata 80.), a następnie wrzucone do procesorów pod nazwą jednostki zmiennoprzecinkowej (ang. ''floating point unit'' ('''FPU''')).Sam koprocesor zaś został zintegrowany z CPU począwszy od serii i486, co więcej tylko w droższym modelu DX. Liczby zmiennoprzecinkowe są składowane w rejestrach od R0 do R7 w postaci o podwójnej, rozszerzonej precyzji (ang. '''double extended-precision'''). Dane mogą być liczbami rzeczywistymi, całkowitymi, liczbami w kodzie BCD (upakowane lub nie), które zostaną automatycznie przekonwertowane do formatu FPU (jeśli wcześniej nie były). Jeśli zaś pewna liczba zapisana w rejestrze koprocesora ma zostać zapisana do komórki pamięci, może być w dowolnym formacie, np w postaci kodu BCD.
Do rejestrów R0-R7 programista nie ma bezpośredniego dostępu, może się do nich odwoływać poprzez ich "aliasy" jakimi są rejestry
ST0 - ST7. W związku z tym, że FPU ma budowę stosu rejestr ST0 jest jego szczytem i wcale nie oznacza to, że jest ustawiony na R0. Aliasy nie są przypisane na stałe poszczególnym rejestrom, wręcz przeciwnie są ruchome. ST0 raz może pokazywać na R3 raz na R2. W praktyce programistę w ogóle nie interesują rejestry R(X), dla nas istotne są tylko rejestry ST(X). Oprócz rejestrów przechowujących liczby, analogicznie jak w CPU są także rejestry stanu i flag które mają to samo zastosowanie co flagi procesora - dzięki nim zachodzą odpowiednie instrukcje warunkowe.
=== Rejestry MMX ===
Rozszerzenie MMX wraz ze swoimi rejestrami zostało wprowadzone w procesorach Pentium (1997). Rozszerzenie to pozwala na przeprowadzanie kilku obliczeń stałoprzecinkowych jednocześnie. Rejestry MMX są ponumerowane od MM0 do MM7 i wszystkie są 64-bitowe. Rejestry te nie są wydzielone, lecz są częścią składową rejestrów jednostki stałoprzecinkowej. Modyfikowanie rejestrów od R0 do R7 modyfikuje nasze rejestry MMX i na odwrót. Jako, że rejestry FPU były 80-bitowe a MMX są 64-bitowe, ostatnie 16 bitów przez MMX jest nieużywanych. Rejestry MMX wykorzystywane są również przez rozszerzenia stworzone przez AMD - 3DNow oraz 3DNow!, które z kolei umożliwiają przeprowadzanie obliczeń zmiennoprzecinkowych.
=== Rejestry XMM ===
Rejestry XMM zostały wprowadzone wraz z rozszerzeniem SSE w procesorach Pentium III (1999). Są ponumerowane od XMM0 do XMM7, każdy po 128 bitów. Rozszerzenie SSE jest kontynuacją rozszerzenia MMX, gdyż założenia są podobne, lecz umożliwiają dodatkowo obliczenia na liczbach zmiennoprzecinkowych. Co więcej rejestry XMM nie są "aliasami" na rejestry FPU, zatem koprocesor i rejestry technologii SSE mogą być używane równolegle.
{{TODO|Znacznie rozwinąć opisy 3 powyższych rejestrów}}
==Pamięć==
=== Prezentacja danych w pamięci ===
W architekturze 80x86 formą zapisu bajtów jest [[Wikipedia:Little endian|Little Endian]]. Oznacza to, że wielobajtowe wartości
są zapisane w kolejności od najmniej do najbardziej znaczącego (patrząc od lewej strony), bardziej znaczące bajty będą miały "wyższe" (rosnące) adresy. Należy mieć na uwadze, że odwrócona zostaje kolejnośc '''bajtów''' a nie '''bitów'''.
Zatem 32-bitowa wartość B3B2B1B0 mogłaby by na procesorze z rodziny x86 być zaprezentowana w ten sposób:
{| border="1"
|+'''Reprezentacja kolejności typu little-endian'''
| Byte 0
| Byte 1
| Byte 2
| Byte 3
|}
Przykładowo 32-bitowa wartość 1BA583D4h (literka '''h''' w Asemblerze oznacza liczbę w systemie szesnastkowym, tak jak '''0x''' w C/C++) mogłaby zostać zapisana w pamięci mniej więcej tak:
{| border="1"
|+'''Przykład'''
| D4
| 83
| A5
| 1B
|}
Zatem tak wygląda nasza wartość (0xD4 0x83 0xA5 0x1B) gdy zrobimy zrzut pamięci.
=== Tryby adresowania ===
Tryb adresowania wyznacza sposób w jaki dostajemy się do adresu, czyli położenia naszego operandu (operandu czyli argumentu danego rozkazu). Na początek może Ciebie przerazić ilość tych trybów jednak zauważ, że wszystkie są dość do siebie podobne. Dodatkowo niektóre tryby są jakby modyfikacją poprzednich, jak na przykład trzy ostatnie. Czasem wystarczy tylko zmienić zapis operandu i mamy zupełnie inny tryb adresowania. Pisząc program nieraz będziesz korzystał z któregoś z sposobów określenia położenia operandu choć może sam nawet nie będziesz o tym wiedział, ani tym bardziej jak on się nazywa. Co więcej spora część z tych trybów jest całkiem intuicyjna, lecz czasem trzeba uważać na małe "kruczki".
;Adresowanie rejestrowe:(wartość operandu zawarta jest w jakimś rejestrze ogólnego przeznaczenia)
<syntaxhighlight lang="asm">mov ax, bx </syntaxhighlight>
;Adresowanie bezpośrednie (nazywane także natychmiastowym): (wartość danego operandu jest już podana)
<syntaxhighlight lang="asm">mov ax, 1</syntaxhighlight>
lub
<syntaxhighlight lang="asm">mov ax, 010Ch </syntaxhighlight>
;Adresowanie pośrednie: (wartość dla danego rozkazu znajduje się w komórce o adresie podanym w operandzie)
<syntaxhighlight lang="asm">mov ax, [102h]; Adres końcowy to DS:0 + 102h </syntaxhighlight>
Wartość w tych dwóch nawiasach jest odpowiednikiem "to co znajduje się w komórce o adresie 102h"). Jeżeli programujesz lub programowałeś w języku C bądź C++ to ten sposób adresowania jest podobny do operatora wyłuskania. Oto odpowiednik w C(++):
<syntaxhighlight lang="c">int ax = *0x102;</syntaxhighlight>
;Adresowanie pośrednie z przemieszczeniem: (używa się operacji arytmetycznych na danym adresie)
<syntaxhighlight lang="asm">byte_tbl db 12,15,16,22,..... ;tablica bajtów
mov al,byte_tbl+2
mov al,byte_tbl[2] ;to samo lecz w innej formie
</syntaxhighlight>
Co w C/C++ byłoby niemal takie same. Aby dostać się do elementu położonego o dwa bajty od początku należy dodać 2 lub odwołać się do elementu trzeciego (licząc od zera) jak w wspomnianych językach wysokiego poziomu.
;Adresowanie rejestrowe, pośrednie: (w danym rejestrze zawarty jest adres komórki z pożądaną wartością)
<syntaxhighlight lang="asm">mov ax,[di] </syntaxhighlight>
Nie myl tego z adresowaniem rejestrowym. Zobacz przykład:
<syntaxhighlight lang="asm">mov dx,si ;skopiuj do DX wartość rejestru SI
mov dx,[si] ;skopiuj do rejestru DX coś co jest w komórce pamięci o adresie zapisanym w SI. Jeśli SI
;ma np. wartość 0D7h to do rejestru DX zostanie skopiowane to, co znajduje się właśnie w tej komórce</syntaxhighlight>
Rejestry używane do tego typu adresowania to: BX, BP, SI, DI
;Adresowanie bazowe z przemieszczeniem:
<syntaxhighlight lang="asm">mov ax, arr[bx]; gdzie BX jest przemieszczeniem wewnątrz tablicy ARR </syntaxhighlight>
Ten tryb adresowania jest analogiczny do docierania do danego elementu tablicy w C. Porównaj sobie powyższy kod z poniższym:
<syntaxhighlight lang="c">
int AX,BX; //nazwa zmiennej taka aby kod był jak najbardziej podobny do asemblerowego
int arr[4]= {6,5,34,22}; //zakładam oczywiście że BX ma wartość od 0 do 3
AX = arr[BX];
</syntaxhighlight>
;Adresowanie bazowo-indeksowe:
<syntaxhighlight lang="asm">mov ax,[bx + di] </syntaxhighlight>
:Przykładowo, jeśli mówimy o tablicy, BX jest początkiem tablicy (zawiera adres jej pierwszego elementu), zaś DI jest indeksem w danej tablicy.
;Adresowanie bazowo-indeksowe z przemieszczeniem:
<syntaxhighlight lang="asm">mov ax,[bx + di + 10]</syntaxhighlight>
== Wejście - wyjście ==
Programy komputerowe przetwarzają dane, jednak aby te dane móc przetworzyć należy najpierw załadować je do pamięci. Źródłem danych w systemie komputerowym są urządzenia wejścia, czyli najczęściej: mysz, klawiatura, napęd cd-rom czy dysk twardy. Do komunikacji programu z tymi urządzeniami służą instrukcje wejścia i wyjścia operujące na ponumerowanych portach. Służą one niskopoziomowemu programowaniu tychże urządzeń i to właśnie z tych instrukcji korzystają sterowniki urządzeń w systemach operacyjnych. Działanie tych instrukcji jest dość proste: mają za zadanie skopiować dane z rejestrów procesora do odpowiednich portów wyjściowych procesora (w przypadku instrukcji '''out''') lub też pobrać dane z portów wejściowych procesora do rejestrów procesora (instrukcja '''in'''). Porty wejścia i wyjścia są elektronicznie połączone z odpowiednimi rejestrami sterującymi konkretnego sprzętu. Sprzęt reaguje na zmiany rejestrów sterujących oraz sam je modyfikuje w sposób opisany w swojej dokumentacji.
<noinclude>
{{przypisy}}
{{Nawigacja|Asembler X86|
[[Asembler x86/Wstęp|Wstęp]]|
[[Asembler x86/Zaawansowana_Architektura| Zaawansowana architektura]]|
}}
</noinclude>
3o3p0nmig34usrk936ci4mu7wmoymtx
Szablon:Książka/Przykład/MediaWiki/Test
10
10204
553976
496496
2026-09-02T13:20:06Z
Persino
2851
553976
wikitext
text/x-wiki
<noinclude>
Ten szablon jest częścią podręcznika [[MediaWiki w obrazkach]] i jest zastosowany w rozdziale [[MediaWiki w obrazkach/Szablony|Szablony]].
{{Kategoria|Szablony przykładowe podręczników}}
</noinclude><!--
-->
{| class="wikitable" align="center"
! Tekst szablonu
|-
| To jest przykładowy szablon
|}
szj48gkjsv3oxaabknam11cbb6ptotf
Szablon:Książka/Przykład/MediaWiki/Test1
10
10206
553975
496497
2026-09-02T13:19:34Z
Persino
2851
553975
wikitext
text/x-wiki
<noinclude>
Ten szablon jest częścią podręcznika [[MediaWiki w obrazkach]] i jest zastosowany w rozdziale [[MediaWiki w obrazkach/Szablony|Szablony]].
{{Kategoria|Szablony przykładowe podręczników}}
</noinclude><!--
-->
{| class="wikitable" align="center"
! colspan=2 | Tekst szablonu
|-
! Parametr 1
! Parametr 2
|-
| {{{1}}}
| {{{2}}}
|}
1ec0sb97yt6hxw7q26c7l70b5qqljwy
Szablon:Książka/Przykład/MediaWiki/Test2
10
26444
553974
496498
2026-09-02T13:19:05Z
Persino
2851
553974
wikitext
text/x-wiki
<noinclude>
Ten szablon jest częścią podręcznika [[MediaWiki w obrazkach]] i jest zastosowany w rozdziale [[MediaWiki w obrazkach/Szablony|Szablony]].
{{Kategoria|Szablony przykładowe podręczników}}
</noinclude><!--
-->
{| class="wikitable" align="center"
! colspan=2 | Tekst szablonu
|-
! Lewy obrazek
! Prawy obrazek
|-
| {{{lewy_obrazek}}}
| {{{prawy_obrazek}}}
|}
817iel58fr8cv5xe0bqgb152xse8pgk
Śpiewnik/Cicha noc
0
54337
554041
507014
2026-09-02T21:02:54Z
Ashaio
4702
nawigacja, zob. też
554041
wikitext
text/x-wiki
{{T|Śpiewnik/NawigacjaOpis}}
[[Plik:Cicha_noc.wav|thumb|250px|'''''Cicha noc''''' w wykonaniu '''[[commons:File:Cicha_noc.wav|artystów Studia Accantus]]'''. Śpiewają '''Sylwia Banasik, Kamil Zięba''' i '''Natalia Piotrowska'''. Skrzypce: '''Magdalena Laskowska'''; instrumenty perkusyjne: '''Alicja Mazurek'''; aranżacja muzyczna: '''Marcin Kuczewski''';
reżyseria, realizacja i edycja nagrań: '''Bartłomiej Kozielski - Studio Accantus'''; miks i mastering: '''Bartłomiej Kozielski, Marcin Kuczewski'''. Sł. '''Joseph Mohr''', muz. '''Franz Xaver Gruber''', tłum. '''Piotr Maszyński'''. © '''Stowarzyszenie Wikimedia Polska'''. Zezwala się na korzystanie z utworu na warunkach licencji '''[https://creativecommons.org/licenses/by/3.0/pl/ Creative Commons Uznanie autorstwa 3.0 PL]'''.]]
== Muzyka ==
'''Kompozytor''': [[w:Franz Xaver Gruber|Franz Xaver Gruber]] (1787–1863)
<br>
<!--
<score raw = "1" vorbis = "1">
\version "2.12.3"
\header {
tagline = ""
}
\layout {
indent = #0
}
akordy = \chordmode {
\set chordChanges = ##t
c,1*3/4 c, g, c,
f, c, f, c,
g, a,:m
c,1*3/8 g, c,1*3/4
}
global = {
\autoBeamOff
% \key d \major
\time 6/8
\tempo 4. = 50
}
melodia = {
\global
\relative g' { \stemUp
g8.[( a16]) g8 e4. | g8.[( a16]) g8 e4. |
d'4 d8 b4 b8 | c4 c8 g4. |
a4 a8 c8.[ b16] a8 | g8.[ a16] g8 e4 e8 |
a4 a8 c8.[ b16] a8 | g8.[ a16] g8 e4 e8 |
d'4 d8 f8.[ d16] b8 | c4.( e4) r8 |
c8.[( g16]) e8 g8.[ f16] d8 | c4.( c4) r8 |
}
}
tekst = \lyricmode {
Ci -- cha noc, świę -- ta noc,
Po -- kój nie -- sie lu -- dziom wszem,
A u żłó -- bka Ma -- tka świę -- ta
Czu -- wa sa -- ma u -- śmie -- chnię -- ta
Nad Dzie -- cią -- tka snem,
Nad Dzie -- cią -- tka snem.
}
\score {
<<
\new ChordNames { \akordy }
\new Voice = "Air" { \melodia }
\new Lyrics \lyricsto "Air" { \tekst }
>>
\midi {}
\layout {}
}
</score>
-->
[[Plik:Cicha_noc_Akordy.svg]]
[[Plik:Cicha_noc_Akordy.ogg]]
<br>
'''Źródło''': Melodia na podstawie {{Cytuj | inni= Piotr Maszyński (słowa) | tytuł=Święta noc | miejsce= Warszawa | wydawca=Gebethner i Wolff | data= [1922-1924] | url=https://polona.pl/item/swieta-noc,MjgxMTA2MTE/1/#info:metadata }} Akordy: opracowanie własne ([[User:Ashaio|Ashaio]]).
== Tekst ==
'''Autor''': [[w:Joseph Mohr|Joseph Mohr]] (1792–1848); '''Tłumacz''': [[w:Piotr Maszyński|Piotr Maszyński]] (1855–1934)
<poem>
Cicha noc, święta noc
Pokój niesie ludziom wszem;
A u żłobka Matka święta
Czuwa sama, uśmiechnięta,
::Nad Dzięciątka snem,
::::Nad Dzięciątka snem.
Cicha noc, święta noc,
Pastuszkowie od swych trzód
Biegną wielce zadziwieni
Za anielskich głosem pienie,
::Gdzie się spełnił cud,
::::Gdzie się spełnił cud.
Cicha noc, święta noc,
Narodzony Boży Syn;
Pan wielkiego majestatu
Niesie dziś całemu światu
::Odkupienie win,
::::Odkupienie win.
</poem>
<br>
'''Źródło''': {{Cytuj | inni= Piotr Maszyński (słowa) | tytuł=Święta noc | miejsce= Warszawa | wydawca=Gebethner i Wolff | data= [1922-1924] | url=https://polona.pl/item/swieta-noc,MjgxMTA2MTE/1/#info:metadata }}
== Zobacz też ==
{{Wikipedia|Cicha noc}}
{{Wikiźródła|Cicha noc}}
{{Projekt siostrzany
| projekt = commons
| tekst = [[w:Wikimedia Commons|Wikimedia Commons]] ma listę nagrań '''[[commons:Polish Christmas carols|polskich kolęd]]''' na wolnych licencjach}}
* [https://bibliotekapiosenki.pl/utwory/Cicha_noc_(koleda) Cicha noc] w serwisie [https://bibliotekapiosenki.pl/ Biblioteka Piosenki]
* [https://staremelodie.pl/piosenka/2041/Cicha_noc_koleda Cicha noc (kolęda)]' w serwisie [https://staremelodie.pl/ Stare Melodie]
* [http://spiewniksiedleckiego.pl/?page_id=252 Pieśni na Narodzenie Pańskie] w serwisie [http://spiewniksiedleckiego.pl/ Śpiewnik Siedleckiego]
* [https://www.lieder-archiv.de/stille_nacht_heilige_nacht-notenblatt_200042.html Stille Nacht] w serwisie [https://www.lieder-archiv.de Lieder-Archiv.de] (nuty, tekst, podkład muzyczny – do wykorzystania niekomercyjnego)
m7j4a5nzpo0nyurqs9tcv5gcr8avywp
Wikipedysta:Persino/common.css
2
56456
554009
496072
2026-09-02T17:05:22Z
Persino
2851
554009
css
text/css
@import "/w/index.php?title=Wikipedysta:Persino/vector-2022.css/skin-night.css&action=raw&ctype=text/css";
.problemy{
display:block !important;
}
/*.kontener_spis_treści,
.opakowanie_kontenera_spis_treści{
margin:0 !important;
margin-bottom:0.3125rem !important;
padding:0 !important;
max-width:none !important;
}
.opakowanie_kontenera_spis_treści .kontener_spis_treści{
margin-bottom:0 !important;
}
.opakowanie_kontenera_spis_treści{
float:none !important;
clear:none !important;
}
.opakowanie_kontenera_spis_treści,
.kontener_spis_treści,
.kontener_spis_treści > table,
.kontener_spis_treści > table tbody,
.kontener_spis_treści > table tr,
.kontener_spis_treści > table td,
.kontener_spis_treści > table th{
display:block;
width:100% !important;
}
.kontener_spis_treści > table .toc_ogólnie_spis{
width:100% !important;
max-width:none !important;
}
@media all and (min-width:370px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 2;
}
}
@media all and (min-width:745px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 3;
}
}
@media all and (min-width:1300px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 4;
}
}
@media all and (max-width:745px){
.szablon_nawigacyjny_konserwacyjny{
column-count:1;
}
}
@media all and (min-width:745px){
.szablon_nawigacyjny_konserwacyjny{
column-count:2;
}
}
@media all and (min-width:1300px){
.szablon_nawigacyjny_konserwacyjny{
column-count:3;
display:block !important;
height:unset !important;
}
}
.tablemenu {
height: 100% !important;
}
.tablemenu ul {
margin:0 !important;
margin-bottom:0.5em !important;
}
table.tablemenu tr:last-child{
margin-top:0 !important;
}
.tablemenu .wykaz_menu > ul{
padding:0 !important;
margin:0 !important;
}
.strona_prawa .spis > div > div{
width:100% !important;
}
.strona_start.kolumnowy.mobilne{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne div > .ciało_kontener > *{
min-width:100% !important;
max-width:100% !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne .strona{
overflow:hidden !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek > div:last-child{
margin-bottom:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek{
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2),
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
max-width:none !important;
width:100% !important;
margin:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > td:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > td:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona{
flex-wrap: wrap;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div{
position:static !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0 !important;
transition:none !important;
transform:none !important;
visibility:visible !important;
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
box-sizing:border-box !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x{
transition:none !important;
transform:none !important;
position:static !important;
margin-left:0 !important;
float:none !important;
clear:none !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div{
width:100% !important;
box-sizing:border-box;
margin: 0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div > div:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_lewa{
order:1 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa{
order:2 !important;
display:flex;
flex-direction:column;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .kontener_spis_treści a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .strona_spisu_treści > .toc_wykaz a.zaznaczone{
color: #3366cc !important;
font-weight: normal !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa{
order:3 !important;
width:100%;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy{
order:1;
height:auto !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y{
order:2;
height:100% !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div{
width:100% !important;
box-sizing:border-box !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis{
max-height:100% !important;
overflow:visible !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y .toc_spis{
overflow:visible !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona{
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .menu{
display:none !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .style_strony_TOC:only-child > .kontener_spis_treści{
margin-top:0 !important;
margin-bottom:0 !important;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading{
display:block;
text-align:left;
text-align:justify;
text-justify:inter-word;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > *{
display:inline;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection{
margin-left:4px;
font-size:80%;
}
.strona_start.niekolumnowy > .strona{
margin-top:0.3125rem !important;
}
figure[typeof~="mw:File"].mw-halign-left{
float:left !important;
margin:4px 4px 4px 0 !important;
}
figure[typeof~="mw:File"].mw-halign-right{
float:right !important;
margin:4px 0 4px 4px !important;
}
figure[typeof~="mw:File"].mw-halign-center{
margin:0 auto !important;
}
.strona_start.mobilne .ciało_strona table,
.strona_start-inne.mobilne table,
.strona_start.mobilne .ciało_strona table > tbody,
.strona_start-inne.mobilne table > tbody,
.strona_start.mobilne .ciało_strona table > tbody > tr,
.strona_start-inne.mobilne table > tbody > tr,
.strona_start.mobilne .ciało_strona table > tbody > tr > th,
.strona_start-inne.mobilne table > tbody > tr > th,
.strona_start.mobilne .ciało_strona table > tbody > tr > td,
.strona_start-inne.mobilne table > tbody > tr > td{
display:block;
width:100% !important;
box-sizing:border-box !important;
margin:0 !important;
}
.strona_start.mobilne .ciało_strona table > tbody > tr > th,
.strona_start-inne.mobilne table > tbody > tr > th,
.strona_start.mobilne .ciało_strona table > tbody > tr > td,
.strona_start-inne.mobilne table > tbody > tr > td{
width:calc( 100% - 0.25rem) !important;
margin:0.125rem !important;
}
.strona_start.mobilne .ciało_strona div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > th,
.strona_start-inne.mobilne div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > th,
.strona_start.mobilne .ciało_strona div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > td,
.strona_start-inne.mobilne div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > td,
.strona_start.mobilne .ciało_strona table.plainlinks > tbody > tr > th,
.strona_start-inne.mobilne table.plainlinks > tbody > tr > th,
.strona_start.mobilne .ciało_strona table.plainlinks > tbody > tr > td,
.strona_start-inne.mobilne table.plainlinks > tbody > tr > td{
width:100% !important;
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
overflow:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .ciało_kontener > *{
min-width:auto !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny{
flex-wrap: wrap;
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1){
order:2 !important;
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2){
order:1 !important;
width:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) > .kontener-jednostki{
overflow:visible !important;
height:100% !important;
margin-top:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2) > .szablon_nawigacyjny_konserwacyjny,
.strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny,
.strona_start.niekolumnowy.mobilne > .strona .szablon_nawigacyjny_konserwacyjny,
.strona_start.niekolumnowy.mobilne > .strona table.sdu{
width:100% !important;
box-sizing:border-box;
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2) > .szablon_nawigacyjny_konserwacyjny .rozwijane,
.strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny .rozwijane,
.strona_start.niekolumnowy.mobilne > .strona .szablon_nawigacyjny_konserwacyjny .rozwijane{
overflow:visible !important;
white-space:normal !important;
max-height:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div > div > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div > div > div:last-child{
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony{
overflow:visible !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny{
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1){
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony .elastyczny,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony{
flex-wrap: wrap;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div{
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child){
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child) .mw-ui-button{
white-space:normal !important;
min-width:auto !important;
width:100% !important;
height:100% !important;
max-width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div{
float:none !important;
clear:none !important;
width:100% !important;
box-sizing:border-box !important;
height:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div > div > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div > div > div:last-child{
white-space:normal !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child){
width:calc( 50% - 0.125rem - 1px) !important;
height:auto !important;
margin-top:0 !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:nth-child(1),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:nth-child(1){
margin-right:0.125rem;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:nth-child(2),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:nth-child(2){
margin-left:0.125rem;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne){
flex-wrap:wrap;
box-sizing:border-box;
width:100% !important;
min-width:auto !important;
max-width:none !important;
height:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne):not(.bez-odstępów-mobilnych){
gap:0.25rem;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne){
width:100% !important;
min-width:auto !important;
max-width:none !important;
height:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) div:not(.bez-mobilne){
overflow-y:visible !important;
max-height:none !important;
height:100% !important;
column-count: unset !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):first-child:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):first-child:not(:last-child){
margin-left:0 !important;
margin-right:0 !important;
margin-bottom:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):last-child,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):last-child{
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):not(:last-child){
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne){
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablonPudełko .zawartość > .opis > .tekst,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablonPudełko .zawartość > .opis > .tekst{
overflow:visible !important;
max-height:none !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablon_blok_ramkowy > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablon_blok_ramkowy > div:last-child{
overflow:visible !important;
max-height:none !important;
height:100% !important;
}
.strona-opis-kategorii-overflow{
max-width:100vw;
width:100%;
overflow:visible;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii{
display:flex !important;
flex-direction:column !important;
width:100% !important;
max-width:100%;
min-width:auto !important;
box-sizing:border-box;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .mójNagłówek{
box-sizing:border-box;
width:100% !important;
order:1 !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .plainlinks{
order:2 !important;
width:100% !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny{
order:3 !important;
margin-left:0 !important;
margin-right:0 !important;
margin-bottom:0.3125rem !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .strona-opis-kategorii-zawartość{
order:4 !important;
width:100% !important;
min-width:auto !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tr > th > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tr > td > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tbody > tr > th > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tbody > tr > td > .strona-opis-kategorii-zawartość{
min-width:auto !important;
width: 100% !important;
box-sizing:border-box;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table.wikitable{
margin-bottom:0 !important;
}
*/
5894b7izbdu7rxm3q1bm20ru0jepxkw
554010
554009
2026-09-02T17:07:10Z
Persino
2851
554010
css
text/css
.problemy{
display:block !important;
}
/*.kontener_spis_treści,
.opakowanie_kontenera_spis_treści{
margin:0 !important;
margin-bottom:0.3125rem !important;
padding:0 !important;
max-width:none !important;
}
.opakowanie_kontenera_spis_treści .kontener_spis_treści{
margin-bottom:0 !important;
}
.opakowanie_kontenera_spis_treści{
float:none !important;
clear:none !important;
}
.opakowanie_kontenera_spis_treści,
.kontener_spis_treści,
.kontener_spis_treści > table,
.kontener_spis_treści > table tbody,
.kontener_spis_treści > table tr,
.kontener_spis_treści > table td,
.kontener_spis_treści > table th{
display:block;
width:100% !important;
}
.kontener_spis_treści > table .toc_ogólnie_spis{
width:100% !important;
max-width:none !important;
}
@media all and (min-width:370px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 2;
}
}
@media all and (min-width:745px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 3;
}
}
@media all and (min-width:1300px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 4;
}
}
@media all and (max-width:745px){
.szablon_nawigacyjny_konserwacyjny{
column-count:1;
}
}
@media all and (min-width:745px){
.szablon_nawigacyjny_konserwacyjny{
column-count:2;
}
}
@media all and (min-width:1300px){
.szablon_nawigacyjny_konserwacyjny{
column-count:3;
display:block !important;
height:unset !important;
}
}
.tablemenu {
height: 100% !important;
}
.tablemenu ul {
margin:0 !important;
margin-bottom:0.5em !important;
}
table.tablemenu tr:last-child{
margin-top:0 !important;
}
.tablemenu .wykaz_menu > ul{
padding:0 !important;
margin:0 !important;
}
.strona_prawa .spis > div > div{
width:100% !important;
}
.strona_start.kolumnowy.mobilne{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne div > .ciało_kontener > *{
min-width:100% !important;
max-width:100% !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne .strona{
overflow:hidden !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek > div:last-child{
margin-bottom:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek{
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2),
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
max-width:none !important;
width:100% !important;
margin:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > td:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > td:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona{
flex-wrap: wrap;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div{
position:static !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0 !important;
transition:none !important;
transform:none !important;
visibility:visible !important;
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
box-sizing:border-box !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x{
transition:none !important;
transform:none !important;
position:static !important;
margin-left:0 !important;
float:none !important;
clear:none !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div{
width:100% !important;
box-sizing:border-box;
margin: 0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div > div:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_lewa{
order:1 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa{
order:2 !important;
display:flex;
flex-direction:column;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .kontener_spis_treści a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .strona_spisu_treści > .toc_wykaz a.zaznaczone{
color: #3366cc !important;
font-weight: normal !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa{
order:3 !important;
width:100%;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy{
order:1;
height:auto !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y{
order:2;
height:100% !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div{
width:100% !important;
box-sizing:border-box !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis{
max-height:100% !important;
overflow:visible !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y .toc_spis{
overflow:visible !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona{
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .menu{
display:none !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .style_strony_TOC:only-child > .kontener_spis_treści{
margin-top:0 !important;
margin-bottom:0 !important;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading{
display:block;
text-align:left;
text-align:justify;
text-justify:inter-word;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > *{
display:inline;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection{
margin-left:4px;
font-size:80%;
}
.strona_start.niekolumnowy > .strona{
margin-top:0.3125rem !important;
}
figure[typeof~="mw:File"].mw-halign-left{
float:left !important;
margin:4px 4px 4px 0 !important;
}
figure[typeof~="mw:File"].mw-halign-right{
float:right !important;
margin:4px 0 4px 4px !important;
}
figure[typeof~="mw:File"].mw-halign-center{
margin:0 auto !important;
}
.strona_start.mobilne .ciało_strona table,
.strona_start-inne.mobilne table,
.strona_start.mobilne .ciało_strona table > tbody,
.strona_start-inne.mobilne table > tbody,
.strona_start.mobilne .ciało_strona table > tbody > tr,
.strona_start-inne.mobilne table > tbody > tr,
.strona_start.mobilne .ciało_strona table > tbody > tr > th,
.strona_start-inne.mobilne table > tbody > tr > th,
.strona_start.mobilne .ciało_strona table > tbody > tr > td,
.strona_start-inne.mobilne table > tbody > tr > td{
display:block;
width:100% !important;
box-sizing:border-box !important;
margin:0 !important;
}
.strona_start.mobilne .ciało_strona table > tbody > tr > th,
.strona_start-inne.mobilne table > tbody > tr > th,
.strona_start.mobilne .ciało_strona table > tbody > tr > td,
.strona_start-inne.mobilne table > tbody > tr > td{
width:calc( 100% - 0.25rem) !important;
margin:0.125rem !important;
}
.strona_start.mobilne .ciało_strona div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > th,
.strona_start-inne.mobilne div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > th,
.strona_start.mobilne .ciało_strona div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > td,
.strona_start-inne.mobilne div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > td,
.strona_start.mobilne .ciało_strona table.plainlinks > tbody > tr > th,
.strona_start-inne.mobilne table.plainlinks > tbody > tr > th,
.strona_start.mobilne .ciało_strona table.plainlinks > tbody > tr > td,
.strona_start-inne.mobilne table.plainlinks > tbody > tr > td{
width:100% !important;
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
overflow:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .ciało_kontener > *{
min-width:auto !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny{
flex-wrap: wrap;
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1){
order:2 !important;
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2){
order:1 !important;
width:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) > .kontener-jednostki{
overflow:visible !important;
height:100% !important;
margin-top:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2) > .szablon_nawigacyjny_konserwacyjny,
.strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny,
.strona_start.niekolumnowy.mobilne > .strona .szablon_nawigacyjny_konserwacyjny,
.strona_start.niekolumnowy.mobilne > .strona table.sdu{
width:100% !important;
box-sizing:border-box;
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2) > .szablon_nawigacyjny_konserwacyjny .rozwijane,
.strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny .rozwijane,
.strona_start.niekolumnowy.mobilne > .strona .szablon_nawigacyjny_konserwacyjny .rozwijane{
overflow:visible !important;
white-space:normal !important;
max-height:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div > div > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div > div > div:last-child{
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony{
overflow:visible !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny{
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1){
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony .elastyczny,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony{
flex-wrap: wrap;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div{
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child){
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child) .mw-ui-button{
white-space:normal !important;
min-width:auto !important;
width:100% !important;
height:100% !important;
max-width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div{
float:none !important;
clear:none !important;
width:100% !important;
box-sizing:border-box !important;
height:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div > div > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div > div > div:last-child{
white-space:normal !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child){
width:calc( 50% - 0.125rem - 1px) !important;
height:auto !important;
margin-top:0 !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:nth-child(1),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:nth-child(1){
margin-right:0.125rem;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:nth-child(2),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:nth-child(2){
margin-left:0.125rem;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne){
flex-wrap:wrap;
box-sizing:border-box;
width:100% !important;
min-width:auto !important;
max-width:none !important;
height:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne):not(.bez-odstępów-mobilnych){
gap:0.25rem;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne){
width:100% !important;
min-width:auto !important;
max-width:none !important;
height:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) div:not(.bez-mobilne){
overflow-y:visible !important;
max-height:none !important;
height:100% !important;
column-count: unset !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):first-child:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):first-child:not(:last-child){
margin-left:0 !important;
margin-right:0 !important;
margin-bottom:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):last-child,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):last-child{
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):not(:last-child){
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne){
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablonPudełko .zawartość > .opis > .tekst,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablonPudełko .zawartość > .opis > .tekst{
overflow:visible !important;
max-height:none !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablon_blok_ramkowy > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablon_blok_ramkowy > div:last-child{
overflow:visible !important;
max-height:none !important;
height:100% !important;
}
.strona-opis-kategorii-overflow{
max-width:100vw;
width:100%;
overflow:visible;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii{
display:flex !important;
flex-direction:column !important;
width:100% !important;
max-width:100%;
min-width:auto !important;
box-sizing:border-box;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .mójNagłówek{
box-sizing:border-box;
width:100% !important;
order:1 !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .plainlinks{
order:2 !important;
width:100% !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny{
order:3 !important;
margin-left:0 !important;
margin-right:0 !important;
margin-bottom:0.3125rem !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .strona-opis-kategorii-zawartość{
order:4 !important;
width:100% !important;
min-width:auto !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tr > th > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tr > td > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tbody > tr > th > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tbody > tr > td > .strona-opis-kategorii-zawartość{
min-width:auto !important;
width: 100% !important;
box-sizing:border-box;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table.wikitable{
margin-bottom:0 !important;
}
*/
ns3v9je1vbxvs76a3syraflpzabevu3
554017
554010
2026-09-02T17:16:45Z
Persino
2851
554017
css
text/css
@import "/w/index.php?title=User:Persino/vector-2022.css&action=raw&ctype=text/css";
.problemy{
display:block !important;
}
/*.kontener_spis_treści,
.opakowanie_kontenera_spis_treści{
margin:0 !important;
margin-bottom:0.3125rem !important;
padding:0 !important;
max-width:none !important;
}
.opakowanie_kontenera_spis_treści .kontener_spis_treści{
margin-bottom:0 !important;
}
.opakowanie_kontenera_spis_treści{
float:none !important;
clear:none !important;
}
.opakowanie_kontenera_spis_treści,
.kontener_spis_treści,
.kontener_spis_treści > table,
.kontener_spis_treści > table tbody,
.kontener_spis_treści > table tr,
.kontener_spis_treści > table td,
.kontener_spis_treści > table th{
display:block;
width:100% !important;
}
.kontener_spis_treści > table .toc_ogólnie_spis{
width:100% !important;
max-width:none !important;
}
@media all and (min-width:370px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 2;
}
}
@media all and (min-width:745px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 3;
}
}
@media all and (min-width:1300px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 4;
}
}
@media all and (max-width:745px){
.szablon_nawigacyjny_konserwacyjny{
column-count:1;
}
}
@media all and (min-width:745px){
.szablon_nawigacyjny_konserwacyjny{
column-count:2;
}
}
@media all and (min-width:1300px){
.szablon_nawigacyjny_konserwacyjny{
column-count:3;
display:block !important;
height:unset !important;
}
}
.tablemenu {
height: 100% !important;
}
.tablemenu ul {
margin:0 !important;
margin-bottom:0.5em !important;
}
table.tablemenu tr:last-child{
margin-top:0 !important;
}
.tablemenu .wykaz_menu > ul{
padding:0 !important;
margin:0 !important;
}
.strona_prawa .spis > div > div{
width:100% !important;
}
.strona_start.kolumnowy.mobilne{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne div > .ciało_kontener > *{
min-width:100% !important;
max-width:100% !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne .strona{
overflow:hidden !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek > div:last-child{
margin-bottom:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek{
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2),
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
max-width:none !important;
width:100% !important;
margin:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > td:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > td:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona{
flex-wrap: wrap;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div{
position:static !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0 !important;
transition:none !important;
transform:none !important;
visibility:visible !important;
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
box-sizing:border-box !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x{
transition:none !important;
transform:none !important;
position:static !important;
margin-left:0 !important;
float:none !important;
clear:none !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div{
width:100% !important;
box-sizing:border-box;
margin: 0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div > div:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_lewa{
order:1 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa{
order:2 !important;
display:flex;
flex-direction:column;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .kontener_spis_treści a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .strona_spisu_treści > .toc_wykaz a.zaznaczone{
color: #3366cc !important;
font-weight: normal !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa{
order:3 !important;
width:100%;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy{
order:1;
height:auto !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y{
order:2;
height:100% !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div{
width:100% !important;
box-sizing:border-box !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis{
max-height:100% !important;
overflow:visible !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y .toc_spis{
overflow:visible !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona{
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .menu{
display:none !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .style_strony_TOC:only-child > .kontener_spis_treści{
margin-top:0 !important;
margin-bottom:0 !important;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading{
display:block;
text-align:left;
text-align:justify;
text-justify:inter-word;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > *{
display:inline;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection{
margin-left:4px;
font-size:80%;
}
.strona_start.niekolumnowy > .strona{
margin-top:0.3125rem !important;
}
figure[typeof~="mw:File"].mw-halign-left{
float:left !important;
margin:4px 4px 4px 0 !important;
}
figure[typeof~="mw:File"].mw-halign-right{
float:right !important;
margin:4px 0 4px 4px !important;
}
figure[typeof~="mw:File"].mw-halign-center{
margin:0 auto !important;
}
.strona_start.mobilne .ciało_strona table,
.strona_start-inne.mobilne table,
.strona_start.mobilne .ciało_strona table > tbody,
.strona_start-inne.mobilne table > tbody,
.strona_start.mobilne .ciało_strona table > tbody > tr,
.strona_start-inne.mobilne table > tbody > tr,
.strona_start.mobilne .ciało_strona table > tbody > tr > th,
.strona_start-inne.mobilne table > tbody > tr > th,
.strona_start.mobilne .ciało_strona table > tbody > tr > td,
.strona_start-inne.mobilne table > tbody > tr > td{
display:block;
width:100% !important;
box-sizing:border-box !important;
margin:0 !important;
}
.strona_start.mobilne .ciało_strona table > tbody > tr > th,
.strona_start-inne.mobilne table > tbody > tr > th,
.strona_start.mobilne .ciało_strona table > tbody > tr > td,
.strona_start-inne.mobilne table > tbody > tr > td{
width:calc( 100% - 0.25rem) !important;
margin:0.125rem !important;
}
.strona_start.mobilne .ciało_strona div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > th,
.strona_start-inne.mobilne div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > th,
.strona_start.mobilne .ciało_strona div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > td,
.strona_start-inne.mobilne div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > td,
.strona_start.mobilne .ciało_strona table.plainlinks > tbody > tr > th,
.strona_start-inne.mobilne table.plainlinks > tbody > tr > th,
.strona_start.mobilne .ciało_strona table.plainlinks > tbody > tr > td,
.strona_start-inne.mobilne table.plainlinks > tbody > tr > td{
width:100% !important;
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
overflow:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .ciało_kontener > *{
min-width:auto !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny{
flex-wrap: wrap;
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1){
order:2 !important;
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2){
order:1 !important;
width:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) > .kontener-jednostki{
overflow:visible !important;
height:100% !important;
margin-top:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2) > .szablon_nawigacyjny_konserwacyjny,
.strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny,
.strona_start.niekolumnowy.mobilne > .strona .szablon_nawigacyjny_konserwacyjny,
.strona_start.niekolumnowy.mobilne > .strona table.sdu{
width:100% !important;
box-sizing:border-box;
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2) > .szablon_nawigacyjny_konserwacyjny .rozwijane,
.strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny .rozwijane,
.strona_start.niekolumnowy.mobilne > .strona .szablon_nawigacyjny_konserwacyjny .rozwijane{
overflow:visible !important;
white-space:normal !important;
max-height:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div > div > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div > div > div:last-child{
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony{
overflow:visible !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny{
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1){
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony .elastyczny,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony{
flex-wrap: wrap;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div{
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child){
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child) .mw-ui-button{
white-space:normal !important;
min-width:auto !important;
width:100% !important;
height:100% !important;
max-width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div{
float:none !important;
clear:none !important;
width:100% !important;
box-sizing:border-box !important;
height:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div > div > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div > div > div:last-child{
white-space:normal !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child){
width:calc( 50% - 0.125rem - 1px) !important;
height:auto !important;
margin-top:0 !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:nth-child(1),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:nth-child(1){
margin-right:0.125rem;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:nth-child(2),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:nth-child(2){
margin-left:0.125rem;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne){
flex-wrap:wrap;
box-sizing:border-box;
width:100% !important;
min-width:auto !important;
max-width:none !important;
height:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne):not(.bez-odstępów-mobilnych){
gap:0.25rem;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne){
width:100% !important;
min-width:auto !important;
max-width:none !important;
height:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) div:not(.bez-mobilne){
overflow-y:visible !important;
max-height:none !important;
height:100% !important;
column-count: unset !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):first-child:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):first-child:not(:last-child){
margin-left:0 !important;
margin-right:0 !important;
margin-bottom:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):last-child,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):last-child{
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):not(:last-child){
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne){
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablonPudełko .zawartość > .opis > .tekst,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablonPudełko .zawartość > .opis > .tekst{
overflow:visible !important;
max-height:none !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablon_blok_ramkowy > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablon_blok_ramkowy > div:last-child{
overflow:visible !important;
max-height:none !important;
height:100% !important;
}
.strona-opis-kategorii-overflow{
max-width:100vw;
width:100%;
overflow:visible;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii{
display:flex !important;
flex-direction:column !important;
width:100% !important;
max-width:100%;
min-width:auto !important;
box-sizing:border-box;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .mójNagłówek{
box-sizing:border-box;
width:100% !important;
order:1 !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .plainlinks{
order:2 !important;
width:100% !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny{
order:3 !important;
margin-left:0 !important;
margin-right:0 !important;
margin-bottom:0.3125rem !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .strona-opis-kategorii-zawartość{
order:4 !important;
width:100% !important;
min-width:auto !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tr > th > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tr > td > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tbody > tr > th > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tbody > tr > td > .strona-opis-kategorii-zawartość{
min-width:auto !important;
width: 100% !important;
box-sizing:border-box;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table.wikitable{
margin-bottom:0 !important;
}
*/
oh5dsle9ijpxgabtrxyx2d7ud7gahoe
554030
554017
2026-09-02T19:00:14Z
Persino
2851
554030
css
text/css
@import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css&action=raw&ctype=text/css";
.problemy{
display:block !important;
}
/*.kontener_spis_treści,
.opakowanie_kontenera_spis_treści{
margin:0 !important;
margin-bottom:0.3125rem !important;
padding:0 !important;
max-width:none !important;
}
.opakowanie_kontenera_spis_treści .kontener_spis_treści{
margin-bottom:0 !important;
}
.opakowanie_kontenera_spis_treści{
float:none !important;
clear:none !important;
}
.opakowanie_kontenera_spis_treści,
.kontener_spis_treści,
.kontener_spis_treści > table,
.kontener_spis_treści > table tbody,
.kontener_spis_treści > table tr,
.kontener_spis_treści > table td,
.kontener_spis_treści > table th{
display:block;
width:100% !important;
}
.kontener_spis_treści > table .toc_ogólnie_spis{
width:100% !important;
max-width:none !important;
}
@media all and (min-width:370px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 2;
}
}
@media all and (min-width:745px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 3;
}
}
@media all and (min-width:1300px){
.szablon_blok_ramkowy > .tekst-zawartość > ul{
column-count: 4;
}
}
@media all and (max-width:745px){
.szablon_nawigacyjny_konserwacyjny{
column-count:1;
}
}
@media all and (min-width:745px){
.szablon_nawigacyjny_konserwacyjny{
column-count:2;
}
}
@media all and (min-width:1300px){
.szablon_nawigacyjny_konserwacyjny{
column-count:3;
display:block !important;
height:unset !important;
}
}
.tablemenu {
height: 100% !important;
}
.tablemenu ul {
margin:0 !important;
margin-bottom:0.5em !important;
}
table.tablemenu tr:last-child{
margin-top:0 !important;
}
.tablemenu .wykaz_menu > ul{
padding:0 !important;
margin:0 !important;
}
.strona_prawa .spis > div > div{
width:100% !important;
}
.strona_start.kolumnowy.mobilne{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne div > .ciało_kontener > *{
min-width:100% !important;
max-width:100% !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne .strona{
overflow:hidden !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek > div:last-child{
margin-bottom:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div.mójNagłówek{
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2),
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
max-width:none !important;
width:100% !important;
margin:0 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table{
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tr > td:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > th:last-child,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > div:nth-child(2) > table > tbody > tr > td:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona{
flex-wrap: wrap;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div{
position:static !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0 !important;
transition:none !important;
transform:none !important;
visibility:visible !important;
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
box-sizing:border-box !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x{
transition:none !important;
transform:none !important;
position:static !important;
margin-left:0 !important;
float:none !important;
clear:none !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div{
width:100% !important;
box-sizing:border-box;
margin: 0 !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy > .mw-optimal-x > div > div:last-child{
font-size:0.80rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_lewa{
order:1 !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa{
order:2 !important;
display:flex;
flex-direction:column;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .kontener_spis_treści a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis a.zaznaczone,
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .strona_spisu_treści > .toc_wykaz a.zaznaczone{
color: #3366cc !important;
font-weight: normal !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa{
order:3 !important;
width:100%;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > div.nawigacja_boksy{
order:1;
height:auto !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y{
order:2;
height:100% !important;
max-height:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div{
width:100% !important;
box-sizing:border-box !important;
margin-bottom:0.3125rem !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > div > .pierwsza_strona > div tr:last-child > td > div.toc_ogólnie_spis{
max-height:100% !important;
overflow:visible !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y .toc_spis{
overflow:visible !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona{
min-width:auto !important;
max-width:100vw !important;
width:100% !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_środkowa > .menu{
display:none !important;
}
.strona_start.kolumnowy.mobilne > .strona_nadrzędna > .główna_strona > .strona_prawa > .mw-sticky-y > .style_strony_TOC:only-child > .kontener_spis_treści{
margin-top:0 !important;
margin-bottom:0 !important;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading{
display:block;
text-align:left;
text-align:justify;
text-justify:inter-word;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > *{
display:inline;
}
.strona_start.kolumnowy > .strona_nadrzędna > .główna_strona > .strona_środkowa > .strona > div > .ciało_kontener > .ciało_strona .mw-heading > .mw-editsection{
margin-left:4px;
font-size:80%;
}
.strona_start.niekolumnowy > .strona{
margin-top:0.3125rem !important;
}
figure[typeof~="mw:File"].mw-halign-left{
float:left !important;
margin:4px 4px 4px 0 !important;
}
figure[typeof~="mw:File"].mw-halign-right{
float:right !important;
margin:4px 0 4px 4px !important;
}
figure[typeof~="mw:File"].mw-halign-center{
margin:0 auto !important;
}
.strona_start.mobilne .ciało_strona table,
.strona_start-inne.mobilne table,
.strona_start.mobilne .ciało_strona table > tbody,
.strona_start-inne.mobilne table > tbody,
.strona_start.mobilne .ciało_strona table > tbody > tr,
.strona_start-inne.mobilne table > tbody > tr,
.strona_start.mobilne .ciało_strona table > tbody > tr > th,
.strona_start-inne.mobilne table > tbody > tr > th,
.strona_start.mobilne .ciało_strona table > tbody > tr > td,
.strona_start-inne.mobilne table > tbody > tr > td{
display:block;
width:100% !important;
box-sizing:border-box !important;
margin:0 !important;
}
.strona_start.mobilne .ciało_strona table > tbody > tr > th,
.strona_start-inne.mobilne table > tbody > tr > th,
.strona_start.mobilne .ciało_strona table > tbody > tr > td,
.strona_start-inne.mobilne table > tbody > tr > td{
width:calc( 100% - 0.25rem) !important;
margin:0.125rem !important;
}
.strona_start.mobilne .ciało_strona div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > th,
.strona_start-inne.mobilne div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > th,
.strona_start.mobilne .ciało_strona div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > td,
.strona_start-inne.mobilne div.szablon_nawigacyjny_konserwacyjny table > tbody > tr > td,
.strona_start.mobilne .ciało_strona table.plainlinks > tbody > tr > th,
.strona_start-inne.mobilne table.plainlinks > tbody > tr > th,
.strona_start.mobilne .ciało_strona table.plainlinks > tbody > tr > td,
.strona_start-inne.mobilne table.plainlinks > tbody > tr > td{
width:100% !important;
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona{
max-width:100vw !important;
min-width:auto !important;
width:100% !important;
overflow:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .ciało_kontener > *{
min-width:auto !important;
max-width:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny{
flex-wrap: wrap;
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1){
order:2 !important;
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2){
order:1 !important;
width:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) > .kontener-jednostki{
overflow:visible !important;
height:100% !important;
margin-top:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2) > .szablon_nawigacyjny_konserwacyjny,
.strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny,
.strona_start.niekolumnowy.mobilne > .strona .szablon_nawigacyjny_konserwacyjny,
.strona_start.niekolumnowy.mobilne > .strona table.sdu{
width:100% !important;
box-sizing:border-box;
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(2) > .szablon_nawigacyjny_konserwacyjny .rozwijane,
.strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny .rozwijane,
.strona_start.niekolumnowy.mobilne > .strona .szablon_nawigacyjny_konserwacyjny .rozwijane{
overflow:visible !important;
white-space:normal !important;
max-height:100% !important;
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div > div > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div > div > div:last-child{
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony{
overflow:visible !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny{
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1){
min-width:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony .elastyczny,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony{
flex-wrap: wrap;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div{
width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child){
margin-bottom:0.3125rem !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child) .mw-ui-button,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child) .mw-ui-button{
white-space:normal !important;
min-width:auto !important;
width:100% !important;
height:100% !important;
max-width:100% !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div{
float:none !important;
clear:none !important;
width:100% !important;
box-sizing:border-box !important;
height:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:last-child > div > div > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:last-child > div > div > div:last-child{
white-space:normal !important;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:not(:last-child){
width:calc( 50% - 0.125rem - 1px) !important;
height:auto !important;
margin-top:0 !important;
box-sizing:border-box;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:nth-child(1),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:nth-child(1){
margin-right:0.125rem;
}
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony:not(.element-prosty-akcji) .elastyczny > div:nth-child(2),
.strona_start.niekolumnowy.mobilne > .strona .główny-element-strony > .elastyczny > div:nth-child(1) .główny-element-akcji-strony.element-prosty-akcji > div:nth-child(2){
margin-left:0.125rem;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne){
flex-wrap:wrap;
box-sizing:border-box;
width:100% !important;
min-width:auto !important;
max-width:none !important;
height:auto !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne):not(.bez-odstępów-mobilnych),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne):not(.bez-odstępów-mobilnych){
gap:0.25rem;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne){
width:100% !important;
min-width:auto !important;
max-width:none !important;
height:100% !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) div:not(.bez-mobilne){
overflow-y:visible !important;
max-height:none !important;
height:100% !important;
column-count: unset !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):first-child:not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):first-child:not(:last-child){
margin-left:0 !important;
margin-right:0 !important;
margin-bottom:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):last-child,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):last-child{
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):not(:last-child),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne):not(:first-child):not(:last-child){
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne),
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny:not(.bez-mobilne) > div:not(.bez-mobilne){
margin:0 !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablonPudełko .zawartość > .opis > .tekst,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablonPudełko .zawartość > .opis > .tekst{
overflow:visible !important;
max-height:none !important;
}
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna.elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablon_blok_ramkowy > div:last-child,
.strona_start.niekolumnowy.mobilne > .strona .siatka-mobilna .elastyczny2:not(.bez-mobilne) > div:not(.bez-mobilne).szablon_blok_ramkowy > div:last-child{
overflow:visible !important;
max-height:none !important;
height:100% !important;
}
.strona-opis-kategorii-overflow{
max-width:100vw;
width:100%;
overflow:visible;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii{
display:flex !important;
flex-direction:column !important;
width:100% !important;
max-width:100%;
min-width:auto !important;
box-sizing:border-box;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .mójNagłówek{
box-sizing:border-box;
width:100% !important;
order:1 !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .plainlinks{
order:2 !important;
width:100% !important;
margin-left:0 !important;
margin-right:0 !important;
margin-top:0 !important;
margin-bottom:0.3125rem !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .szablon_nawigacyjny_konserwacyjny{
order:3 !important;
margin-left:0 !important;
margin-right:0 !important;
margin-bottom:0.3125rem !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > .strona-opis-kategorii-zawartość{
order:4 !important;
width:100% !important;
min-width:auto !important;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tr > th > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tr > td > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tbody > tr > th > .strona-opis-kategorii-zawartość,
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table > tbody > tr > td > .strona-opis-kategorii-zawartość{
min-width:auto !important;
width: 100% !important;
box-sizing:border-box;
}
.strona-opis-kategorii-overflow > .strona-opis-kategorii > table.wikitable{
margin-bottom:0 !important;
}
*/
cd2t4joq1qyddr9ls99fiofy4ge5wtq
Wikipedysta:Persino/Gadget-Vector-2022.css/main.css
2
58973
554003
553383
2026-09-02T16:42:20Z
Persino
2851
554003
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:-1px;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
m1qz0hnlwo4qqbeb4w642xp3uzfxm3a
554004
554003
2026-09-02T16:45:34Z
Persino
2851
554004
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:-1px;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
@import "//pl.wikibooks.org/w/index.php?title=User:Persino/vector-2022.css/skin-night.css&action=raw&ctype=text/css";
gob6l5xyasuw0kr2kqr64559rp0vbub
554005
554004
2026-09-02T16:48:59Z
Persino
2851
554005
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:-1px;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
@import "/w/index.php?title=User:Persino/vector-2022.css/skin-night.css&action=raw&ctype=text/css";
6fvqziqudhqa91cwh1z5ceuayydh7xg
554006
554005
2026-09-02T16:59:17Z
Persino
2851
554006
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:-1px;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
m1qz0hnlwo4qqbeb4w642xp3uzfxm3a
554013
554006
2026-09-02T17:09:05Z
Persino
2851
554013
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
@import "/w/index.php?title=Wikipedysta:Persino/vector-2022.css/skin-night.css&action=raw&ctype=text/css";
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:-1px;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
9vthp3l3xe7ni9zc5jhu4w1w4jom5s5
554014
554013
2026-09-02T17:09:47Z
Persino
2851
554014
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:-1px;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
m1qz0hnlwo4qqbeb4w642xp3uzfxm3a
554015
554014
2026-09-02T17:10:47Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikipedysta:Persino/vector-2022.css]] do [[Wikipedysta:Persino/vector-2022.css/main.css]], bez pozostawienia przekierowania pod starym tytułem
554014
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:-1px;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
m1qz0hnlwo4qqbeb4w642xp3uzfxm3a
554022
554015
2026-09-02T18:14:40Z
Persino
2851
554022
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:1px;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
tdx6zwz9tnz6074xd3d4yg3vv17n92a
554023
554022
2026-09-02T18:15:49Z
Persino
2851
554023
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:0;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
5b3o1b4yvdwcdr9464x0o2amlzv7uk6
554025
554023
2026-09-02T18:56:34Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikipedysta:Persino/vector-2022.css/main.css]] do [[Wikipedysta:Persino/Gadget-Vector-2022.css/main.css]], bez pozostawienia przekierowania pod starym tytułem
554023
css
text/css
/* Kod CSS skórki vector-2022 na WIKI (ustawienia własne vector) */
body:not(.action-edit):not(.action-submit) #mw-content-text .mw-parser-output,
body.action-submit #wikiPreview,
.mw-footer-container{
word-wrap: break-word;
word-break: break-word;
}
.mw-content-container,
.vector-sticky-header,
.vector-page-toolbar-container{
max-width: unset !important;
}
.mw-header{
padding-top:4px;
padding-bottom:4px;
}
.vector-header-container{
box-sizing:border-box;
width: -moz-available !important;
width: -webkit-fill-available !important;
width: stretch !important;
}
html.vector-feature-page-tools-pinned-enabled > body.ns-special .vector-page-toolbar-container{
margin-top:-2px;
}
.vector-pinnable-element{
padding-top:3px;
}
.vector-dropdown .vector-dropdown-content{
padding-top: 6px;
margin-top: 7px;
}
.vector-header-container{
padding-left:20px;
padding-right:20px;
max-width:none;
border-bottom: 1px solid #eaecf0;
margin-bottom:4px;
max-width:100%;
min-width:auto;
box-sizing:border-box;
}
.vector-pinned-container{
margin-bottom:0;
padding-right:2px !important;
padding-top:2px;
}
#vector-page-tools-pinned-container.vector-pinned-container{
margin-bottom:0;
padding-right:8px !important;
}
.mw-logo{
min-width:auto;
}
@media screen and (max-width: 999px){
.mw-header.vector-header-search-toggled .vector-search-box{
margin-left:0;
}
.cdx-typeahead-search--show-thumbnail.cdx-typeahead-search--auto-expand-width:not(.cdx-typeahead-search--expanded){
margin-left:0;
}
}
@media screen and (max-width: 390px){
.mw-logo{
display:none;
}
}
@media screen and (max-width: 454px){
.cdx-text-input__input{
min-width:auto;
}
}
@media screen and (min-width: 999px) {
.client-js.vector-sticky-header-enabled{
scroll-padding-top: 50px;
}
}
.mw-page-container{
max-width:100vw;
width:100%;
box-sizing:border-box;
display:flex;
flex-direction:row;
min-height:calc( 100% - 3.125rem - 1px - 4px - 8px );
box-sizing:border-box;
background-image: url("//upload.wikimedia.org/wikipedia/commons/thumb/0/05/Wikibooksfirehazard2.svg/200px-Wikibooksfirehazard2.svg.png");
background-color:transparent;
background-attachment:fixed;
margin-left:0;
margin-right:0;
}
.vector-feature-limited-width-clientpref-0 .mw-page-container{
background-color:white;
}
.vector-feature-limited-width-clientpref-1 .mw-page-container{
background-color:cornflowerblue;
}
@media all and (max-width:999px){
.mw-page-container{
background-image:none;
}
}
html.vector-feature-limited-width-clientpref-0 > body > .mw-page-container,
html.vector-is-page-available > body > .mw-page-container{
background-image:none;
}
@media all and (max-width:476px){
.mw-page-container{
min-height:calc( 100% - 6.75rem - 1px - 4px - 8px );
width:100% !important;
}
}
@media all and (max-width:999px){
.mw-page-container{
width:100% !important;
}
}
.mw-page-container > .mw-page-container-inner{
background-color:white;
padding-left: 5px;
padding-right: 5px;
}
.mw-page-container > .mw-page-container-inner{
max-width:100vw;
margin:auto;
margin-top:0;
}
.vector-main-menu-container, .mw-content-container{
margin-top:2px;
}
@media all and (min-width:999px){
.mw-page-container > .mw-page-container-inner{
padding-left:5px;
padding-right:5px;
max-width:100%;
}
.mw-page-container > .mw-page-container-inner{
width:auto;
}
.vector-feature-limited-width-clientpref-0 #content{
width:100%;
}
.mw-page-container .mw-content-container{
display:flex;
flex-direction:column;
}
.mw-page-container .mw-content-container > #content{
height:auto;
order:1;
}
.mw-page-container .mw-content-container > #mw-data-after-content{
order:2;
}
html.client-nojs #bodyContent{
width:auto !important;
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .mw-body-header,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .mw-body-header{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .mw-body-header{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-page-toolbar,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-page-toolbar{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-page-toolbar{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent,
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #bodyContent,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #bodyContent{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #bodyContent{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container #footer,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container #footer{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container #footer{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 15rem + 5px );
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container,
html.vector-feature-main-menu-pinned-enabled:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 15rem + 5px );
}
/**/
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-appearance-pinned-clientpref-1 body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 8.125rem );
}
html.vector-feature-appearance-pinned-clientpref-1 body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 8.125rem);
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html.vector-feature-page-tools-pinned-enabled body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px + 0.625rem + 1px + 11.875rem );
}
html.vector-feature-page-tools-pinned-enabled body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem + 0.625rem + 1px + 11.875rem);
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start:not(.vector-strona-start-toc) .mw-page-container .vector-sitenotice-container,
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body:not(.vector-strona-start) .mw-page-container .vector-sitenotice-container{
width:calc(50rem + 2 * 0.625rem + 2px );
}
html:not(.vector-feature-page-tools-pinned-enabled):not(.vector-feature-appearance-pinned-clientpref-1) body.vector-strona-start.vector-strona-start-toc.vector-strona-start-toc-prawy .mw-page-container .vector-sitenotice-container{
width:calc( 50rem + 2 * 0.625rem + 2px + 0.3 * 43.75rem + 0.3125rem );
}
/**/
.mw-footer-container{
display: flex;
flex-direction: row;
align-items: stretch;
justify-content: center;
}
}
body,
.mw-page-container,
.mw-page-container-inner,
.mw-content-container,
#content,
#bodyContent,
#mw-content-text,
.mw-parser-output,
#footer,
.vector-sitenotice-container{
max-width:-moz-available !important;
max-width:-webkit-fill-available !important;
max-width:stretch !important;
}
body.ns-10:not(.ns-submit) .mw-body-header,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .mw-body-header,
body.vector-page-js.ns-8 .mw-body-header,
body.vector-page-css.ns-2 .mw-body-header,
body.vector-page-js.ns-2 .mw-body-header,
body.ns-10:not(.ns-submit) .vector-sitenotice-container,
body.ns-828:not(.ns-submit) .vector-sitenotice-container,
body.vector-page-css.ns-8 .vector-sitenotice-container,
body.vector-page-js.ns-8 .vector-sitenotice-container,
body.vector-page-css.ns-2 .vector-sitenotice-container,
body.vector-page-js.ns-2 .vector-sitenotice-container,
body.ns-10:not(.ns-submit) .vector-page-toolbar,
body.ns-828:not(.ns-submit) .vector-page-toolbar,
body.vector-page-css.ns-8 .vector-page-toolbar,
body.vector-page-js.ns-8 .vector-page-toolbar,
body.vector-page-css.ns-2 .vector-page-toolbar,
body.vector-page-js.ns-2 .vector-page-toolbar,
body.ns-10:not(.ns-submit) #bodyContent,
body.ns-828:not(.ns-submit) #bodyContent,
body.vector-page-css.ns-8 #bodyContent,
body.vector-page-js.ns-8 #bodyContent,
body.vector-page-css.ns-2 #bodyContent,
body.vector-page-js.ns-2 #bodyContent,
body.ns-10:not(.ns-submit) #footer,
body.ns-828:not(.ns-submit) #footer,
body.vector-page-css.ns-8 #footer,
body.vector-page-js.ns-8 #footer,
body.vector-page-css.ns-2 #footer,
body.vector-page-js.ns-2 #footer{
width:100% !important;
}
@media all and (min-width:745px){
body.ns-10:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-828:not(.ns-submit) .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-10 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-828 .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-css .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-2.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-10.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.ns-828.ns-submit.ns-submit-8.vector-page-js .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-8 .mw-page-container > .mw-page-container-inner,
body.vector-page-css.ns-2 .mw-page-container > .mw-page-container-inner,
body.vector-page-js.ns-2 .mw-page-container > .mw-page-container-inner,
body.ns-10 .mw-page-container > .mw-page-container-inner,
html.client-nojs{
width:100%;
order:2;
}
}
html.vector-feature-limited-width-clientpref-0 .mw-body-header,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.vector-feature-limited-width-clientpref-0 .vector-sitenotice-container,
html.vector-feature-limited-width-clientpref-0 #bodyContent,
html.vector-feature-limited-width-clientpref-0 #footer,
html.vector-feature-limited-width-clientpref-0 .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-nojs .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-nojs .mw-page-container > .mw-page-container-inner #footer,
html.client-nojs .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .mw-body-header,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-sitenotice-container,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #bodyContent,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner #footer,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner .vector-page-toolbar{
width:100% !important;
}
html.vector-feature-limited-width-clientpref-0 .mw-page-container > .mw-page-container-inner,
html.client-nojs .mw-page-container > .mw-page-container-inner,
html.client-js.vector-is-page-available .mw-page-container > .mw-page-container-inner{
max-width:100vw;
width:100%;
overflow:auto;
}
#bodyContent,
#content{
box-sizing:border-box;
}
.vector-feature-main-menu-pinned-disabled.vector-toc-not-available .mw-page-container-inner,
.vector-feature-main-menu-pinned-disabled.vector-feature-toc-pinned-clientpref-0 .mw-page-container-inner{
grid-template-columns: minmax(0,1fr);
}
body{
background-color:white;
}
.mw-footer-container{
padding: 7px 0 2px 0;
}
.mw-footer-container > .mw-footer{
padding:10px 5px;
}
.mw-page-container{
padding-right:0;
padding-left:0;
box-sizing:border-box;
min-width:auto;
}
@media all and (min-width: 1000px){
.mw-body{
grid-template: min-content min-content min-content 1fr / minmax(0,1fr) auto;
grid-template-areas:
'titlebar titlebar'
'toolbar toolbar'
'content columnEnd'
'.. columnEnd';
column-gap:0 !important;
width:100%;
box-sizing:border-box;
}
}
.mw-page-container-inner{
grid-template-columns: 15rem minmax(0,1fr);
column-gap: 5px;
}
html.vector-column-end .vector-appearance-landmark{
max-width:11.875rem;
}
html.client-nojs.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
display:none;
}
html.client-js.vector-feature-appearance-pinned-clientpref-1:not(.vector-feature-page-tools-pinned-enabled) .vector-column-end{
width:8.125rem !important;
}
html.client-js.vector-feature-page-tools-pinned-enabled.vector-feature-appearance-pinned-clientpref-0 .vector-column-end{
width:11.875rem;
}
html.client-nojs.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.client-js.vector-feature-appearance-pinned-clientpref-1.vector-feature-page-tools-pinned-enabled .vector-column-end{
width:11.875rem;
}
.vector-sticky-pinned-container{
padding-bottom:5px;
}
.vector-sticky-pinned-container::after{
display:none;
}
.vector-sticky-pinned-container{
top:0;
}
.client-js.vector-sticky-header-enabled body:not(.vector-sticky-header-visible) .vector-sticky-pinned-container{
top: 0 !important;
max-height:calc( 100vh - 3px );
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-sticky-pinned-container{
top: 3.2rem !important;
max-height: calc(100vh - 3.2rem - 5px);
}
.client-js.vector-sticky-header-enabled body.vector-sticky-header-visible .vector-column-start .vector-sticky-pinned-container{
top: 3.5rem !important;
}
#siteNotice{
margin:unset;
}
#centralNotice:not(:empty){
margin: 5px 0 8px 0;
}
#centralNotice:not(:empty) > div:first-of-type{
margin-top:5px;
}
#centralNotice:not(:empty) > div:last-of-type{
margin-bottom:8px;
}
.mw-indicators{
white-space:nowrap;
font-size: 0.875rem;
line-height: 1.4;
}
.mw-indicators .mw-parser-output{
font-size: 1.0em;
line-height: 1.4;
}
.vector-page-titlebar-blank .mw-indicators{
display:none;
}
.mw-body-header{
position:relative;
height:2.6rem;
box-sizing:border-box;
}
.mw-body-header > .firstHeading:not(:hover){
height:100%;
box-sizing:border-box
}
body .firstHeading:not(:hover) > .plainlinks,
body:not(.action-view) .firstHeading:not(:hover) > .plainlinks{
display:none;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body .firstHeading > .plainlinks,
body:not(.action-view) .firstHeading > .plainlinks{
text-shadow:none;
}
.mw-body h1.firstHeading{
font-size: 1.6rem;
line-height: 1.4;
}
body.action-view:not(.ns-special) .firstHeading{
min-height:100%;
box-sizing:border-box;
overflow:hidden;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
height:100%;
}
body.action-view:not(.ns-special) .firstHeading:not(:hover){
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
margin-right:7px;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header:not(.vector-page-titlebar-blank) .firstHeading:not(:hover){
display:block !important;
}
body:not(.ns-0).action-view:not(.ns-special) .mw-body-header.vector-page-titlebar-blank .firstHeading:not(:hover){
display:none !important;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view:not(.ns-special) .firstHeading:not(:hover){
display:flex;
flex-direction:row;
justify-content:flex-start;
}
body:not(.action-view) .firstHeading:not(:hover),
body.action-view.ns-special .firstHeading:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:not(:hover){
display:block;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
border-bottom:0;
padding-top:6px;
}
body:not(.action-view) firstHeading:first-child:not(:hover),
body.action-view.ns-special firstHeading:first-child:not(:hover),
html.vector-feature-limited-width-content-disabled body.action-view .firstHeading:first-child:not(:hover){
margin-left:0;
}
html.vector-feature-toc-pinned-clientpref-0 body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-0 body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:5px;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body:not(.action-view) .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view.ns-special .firstHeading:not(:first-child):not(:hover),
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available body.action-view .firstHeading:not(:first-child):not(:hover){
margin-left:0;
}
body.ns-0 .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > div:not(.plainlinks):first-of-type{
order:4;
}
body.ns-0 .firstHeading:not(:hover) > #firstHeadingTitle,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #firstHeadingTitle{
order:5;
}
body.ns-0 .firstHeading:not(:hover) > .mw-page-title-main,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > .mw-page-title-main{
order:3;
}
body.ns-0 .firstHeading:not(:hover) > #mw-article-numbering,
body.ns-0:not(.action-view) .firstHeading:not(:hover) > #mw-article-numbering{
order:1;
}
body.ns-0 .firstHeading:not(:hover) > *[lang],
body.ns-0:not(.action-view) .firstHeading:not(:hover) > *[lang]{
order:2;
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
}
body.ns-0 .firstHeading > .mw-editsection{
height:1.2em;
line-height:3.8;
}
body.ns-0 .firstHeading:not(:hover) > .mw-editsection{
order:4;
}
body .firstHeading:hover{
display:block;
border:1px solid #eaecf0;
border-radius:10px;
background-color:white;
position:absolute;
top:0;
/*left:-6px;*/
width:auto;
padding:5px;
z-index:2;
}
.firstHeading:first-child:hover{
left:-6px;
}
html.vector-feature-toc-pinned-clientpref-0 .firstHeading:not(:first-child):hover{
left:1.4375rem;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .firstHeading:not(:first-child):hover{
left:-6px;
}
header.mw-body-header{
justify-content:space-between;
width:100%;
box-sizing:border-box;
}
#vector-main-menu > div.vector-pinnable-header{
margin-left:5px;
}
body .firstHeading:hover{
word-wrap:break-word;
hyphens:auto;
width:auto;
}
html.vector-feature-limited-width-content-enabled body.ns-0.action-view .firstHeading:hover{
display:grid !important;
justify-content:start;
grid-template-columns:auto auto auto auto minmax(auto,1fr);
}
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child{
grid-row-start:1;
grid-row-end:2;
grid-column-start:1;
grid-column-end:2;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > :not(#mw-article-numbering):first-child,
body.ns-0.action-view .firstHeading:hover > #mw-article-numbering:first-child + *{
grid-row-start:1;
grid-row-end:2;
grid-column-start:3;
grid-column-end:4;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-page-title-main{
grid-row-start:1;
grid-row-end:2;
grid-column-start:2;
grid-column-end:3;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .mw-editsection{
grid-row-start:1;
grid-row-end:2;
grid-column-start:4;
grid-column-end:5;
width:auto;
}
body.ns-0.action-view .firstHeading:hover > .plainlinks{
grid-row-start:auto;
grid-row-end:auto;
grid-column-start:1;
grid-column-end:6;
width:auto;
}
body.action-view .firstHeading:hover{
display:block !important;
}
.mw-body-header > .mw-indicators{
order:3;
margin-top:auto;
margin-bottom:3px;
}
.mw-body-header::before{
content:'';
display:block;
order:3;
width:auto;
flex:auto 1 1;
}
.mw-body-header > .vector-toc-landmark{
width:1.5rem;
height:2.125rem;
}
.mw-body-header > .vector-toc-landmark{
order:1;
}
html.vector-feature-toc-pinned-clientpref-0 .vector-toc-landmark{
margin-right:0;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover){
order:2;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > .vector-toc-landmark ~ #firstHeading:hover ~ #p-lang-btn{
order:3;
}
/**/
.mw-body-header > #firstHeading:first-child:not(:hover){
order:2;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:not(:hover) ~ #p-lang-btn{
order:4;
}
.mw-body-header > #firstHeading:first-child:hover ~ #ca-addsection{
order:3;
}
.mw-body-header > #firstHeading:first-child:hover ~ #p-lang-btn{
order:4;
}
#ca-addsection{
margin-left:0;
margin-right:0;
}
.vector-page-titlebar{
flex-wrap:nowrap;
}
/**/
.vector-page-titlebar .vector-page-titlebar-toc .vector-menu-heading{
padding:0.3125em !important;
}
#vector-page-titlebar-toc-label{
height: 2.125rem;
max-width: 28rem;
min-height:unset;
}
.vector-toc-landmark{
margin-top:auto;
margin-bottom:0;
}
.mw-body-header .mw-portlet-lang{
margin-right:0;
}
#vector-page-titlebar-toc-checkbox{
display:none;
}
body .firstHeading:hover > .plainlinks,
body:not(.action-view) .firstHeading:hover > .plainlinks{
display:block;
}
#mw-panel{
border-radius: 10px;
border: 1px solid #c8ccd1;
padding: 5px;
}
/**/
#mw-panel .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-main-menu-unpinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-pinned-container .vector-menu-heading:not(.mw-menu-inactive),
#vector-page-tools-unpinned-container .vector-menu-heading:not(.mw-menu-inactive){
background-color:whitesmoke;
}
#mw-panel .mw-menu-inactive,
#vector-main-menu-pinned-container .mw-menu-inactive,
#vector-main-menu-unpinned-container .mw-menu-inactive,
#vector-page-tools-pinned-container .mw-menu-inactive,
#vector-page-tools-unpinned-container .mw-menu-inactive{
background-color:lightsteelblue;
color:white;
}
#mw-panel .vector-menu-heading,
#vector-main-menu-pinned-container .vector-menu-heading,
#vector-main-menu-unpinned-container .vector-menu-heading,
#vector-page-tools-pinned-container .vector-menu-heading,
#vector-page-tools-unpinned-container .vector-menu-heading{
padding-left:5px !important;
padding-right:5px !important;
margin-left:0 !important;
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
margin-top:3px;
margin-bottom:0;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive),
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive),
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive){
display:block;
border-radius:5px;
border:1px solid #c8ccd1;
padding: 5px;
margin-top:2px;
}
#mw-panel .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-main-menu-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-pinned-container .vector-menu-content:not(.mw-items-inactive) > ul,
#vector-page-tools-unpinned-container .vector-menu-content:not(.mw-items-inactive) > ul{
margin-top:0;
}
#mw-panel .mw-items-inactive,
#vector-main-menu-unpinned-container .mw-items-inactive,
#vector-page-tools-pinned-container .mw-items-inactive,
#vector-page-tools-unpinned-container .mw-items-inactive{
display:none;
}
.vector-main-menu #p-navigation .vector-menu-heading{
display:block;
}
#mw-panel .vector-main-menu-action,
#vector-main-menu-unpinned-container .vector-main-menu-action,
#vector-page-tools-pinned-container .vector-main-menu-action,
#vector-page-tools-unpinned-container .vector-main-menu-action{
display:none;
}
#mw-panel.hidden_sidebar_panel{
position:relative;
z-index:1;
}
#mw-panel.hidden_sidebar_panel > #hideSidebar_close_lpanel{
position:absolute;
right:0;
}
#mw-panel.hidden_sidebar_panel > #vector-main-menu-pinned-container{
display:none;
}
#mw-panel #vector-main-menu-pinned-container{
padding-left:0 !important;
}
#vector-main-menu-pinned-container .vector-main-menu{
margin-left:0 !important;
margin-top:0 !important;
}
#mw-data-after-content .cdx-card{
margin:5px 0;
border-radius:10px;
}
.vector-unpinned-container .vector-menu{
margin:0 5px;
}
#mw-content-text .mw-parser-output code{
position:relative;
}
.mw-parser-output pre{
margin-top:8px;
margin-bottom:8px;
background-color: #f8f9fa;
color: #000;
border: 1px solid #eaecf0;
word-wrap:break-word;
word-break:break-word;
hyphens:auto;
box-sizing:border-box;
font-size:110%;
}
.client-js .vector-search-box-vue .cdx-search-input{
position:relative;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-text-input__input{
border-right-color:#a2a9b1 !important;
}
.client-js .vector-search-box-vue .vector-typeahead-search .cdx-search-input__end-button{
position:absolute;
right:0;
}
html.client-js .vector-search-box-vue .vector-typeahead-search--active .cdx-search-input__end-button,
html.client-js .vector-search-box-vue .vector-typeahead-search:hover .cdx-search-input__end-button{
position:relative;
}
.mw-content-container #content{
border-radius:10px;
border:1px solid #c8ccd1;
padding:10px;
padding-top:8px;
}
body:not(.action-view):not(.ns-special) .vector-body-before-content{
float:right;
}
body.ns-special .vector-body-before-content .mw-indicators{
margin-top:6px;
float:right;
padding-top:0;
}
body:not(.ns-special) .vector-body-before-content .mw-indicators{
margin-top:2px;
float:right;
padding-top:0;
margin-bottom:0.2px;
}
.vector-body-before-content > .mw-indicators img,
.mw-body-header .mw-indicators img{
max-height:1.7em;
}
body:not(.page-Wikibooks_Strona_główna).action-view:not(.ns-special) .vector-body-before-content::after{
content:'';
display:block;
clear:both;
order:2;
}
body.action-view #bodyContent div#siteSub{
display:block !important;
}
body.action-view:not(.ns-special) .vector-body-before-content #siteSub{
display:block;
float:left;
order:1;
margin-top:5px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size:0.8125rem;
line-height:1.4em;
padding-bottom:1px;
}
body.action-view:not(.ns-special) .vector-body-before-content{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
body.action-view:not(.ns-special) .vector-body-before-content .mw-indicators{
order:3;
white-space:nowrap;
}
body.action-view:not(.ns-special) .vector-body-before-content{
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
display:flex;
flex-direction:row;
justify-content:space-between;
align-items: flex-end;
}
#mw-content-text{
margin-top:10px;
}
.catlinks{
margin-top:7px !important;
}
.mw-category-generated > :first-child > h2:first-child{
margin-top:14px;
}
body.ns-14 .mw-category-generated > p:only-child{
border:1px solid #c8ccd1;
padding:5px;
margin-top:5px;
margin-bottom:5px;
}
body.ns-14 .mw-parser-output.blank{
margin-top:-3px;
}
body.ns-14 .mw-parser-output.blank ~ .printfooter{
margin-top:3px;
}
#content::after{
content:'';
clear:both;
display:block;
}
#bodyContent{
margin-bottom:0;
box-sizing: border-box;
}
body.action-edit #bodyContent #editform{
margin-top:5px;
}
body{
font-family: Arial, Helvetica, "Free Helvetian", FreeSans, sans-serif;
font-stretch:normal;
font-variant:normal;
font-style:normal;
font-weight:normal;
font-size-adjust:none;
letter-spacing:normal;
word-spacing:normal;
text-align:left;
word-wrap:break-word;
hyphens:auto;
}
body.action-history #mw-content-text > *:first-child{
margin-top:8px;
}
.mw-parser-output hr{
font-size:1.2em;
}
#mw-content-text,
#mw-content-text .mw-message-box-warning,
#mw-content-text .mw-parser-output{
font-size: calc(0.875rem * 0.89944);
line-height: 1.4em;
}
.mw-ui-icon{
font-size:1rem;
}
body{
font-size:1rem;
line-height:1.4em;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.blank)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.blank)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.blank)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.blank)::after{
margin-top:0;
}
/**/
body.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:8px;
}
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.page-Wikibooks_Strona_główna:not(.ns-special).action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
content:'';
clear:both;
display:block;
}
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body:not(.ns-special):not(.page-Wikibooks_Strona_główna).action-view:not(.ns-14) #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:3px;
}
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.page-Wikibooks_Strona_główna.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:first-child:not(.is-only-whitespace)::before,
body.ns-special.action-view #mw-content-text .mw-parser-output.first-child:not(.is-only-whitespace)::before{
margin-bottom:0;
}
body.ns-special.action-view #mw-content-text .mw-parser-output:last-child:not(.is-only-whitespace)::after,
body.ns-special.action-view #mw-content-text .mw-parser-output.last-child:not(.is-only-whitespace)::after{
margin-top:0;
}
/**/
body:not(.page-Wikibooks_Strona_główna) .printfooter{
display:block;
padding:5px;
border:1px solid #c8ccd1;
margin-top:6px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
clear:both;
}
.noarticletext{
margin-top:0;
margin-bottom:7px;
}
body.action-view #bodyContent #contentSub{
display:block !important;
}
#contentSub{
margin-top:5px !important;
}
#contentSub > #pwContent > #pwPathway,
#contentSub > #pwContent > #pwPathway + #pwNav,
#contentSub > #mw-content-subtitle,
#contentSub > #mw-content-subtitle > .subpages,
#contentSub2 > .subpages > .mw-undelete-subtitle{
font-size:0.75rem;
line-height:1.2em;
}
#contentSub2{
margin-top:4px !important;
}
#contentSub2 > .subpages{
border-bottom:1px solid #c8ccd1;
padding-bottom:5px;
padding-top:2px;
}
#pwContent:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
font-size:100%;
}
html:not(.client-nojs) body:not(.mw-special-Watchlist) #mw-content-subtitle:not(:empty),
html.client-nojs #mw-content-subtitle:not(:empty){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle > .subpages:not(:last-child){
border-bottom:1px solid #c8ccd1;
padding-bottom:3px;
}
#mw-content-subtitle .mw-message-box-warning:not(:last-child){
margin:10px 0;
}
#mw-content-subtitle .mw-message-box-warning:last-child{
margin:10px 0 8px 0;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:10px !important;
margin-bottom:10px !important;
}
#mw-content-subtitle #redirectsub,
#mw-content-subtitle .mw-redirectedfrom{
display:block;
margin: 5px 0 2px 0;
}
#mw-content-subtitle .mw-redirectedfrom:not(:last-child){
border-bottom: 1px solid #c8ccd1;
}
#mw-content-text > .mw-message-box-warning:first-child{
margin:10px 0;
}
#mw-content-text > .mw-message-box-warning{
margin:5px 0 10px 0;
}
body.action-edit #mw-content-text > .mw-editnotice:first-child{
margin-top:12px;
}
body.action-edit #mw-content-text > :not(.mw-editnotice):not(.mw-parser-output):not(.mw-message-box-warning):first-child{
margin-top:-3px;
}
body.action-view.ns-special #mw-content-text > :not(div):not(p):first-child{
margin-top:18px;
}
body:not(.action-view) #mw-content-text > p:first-child{
margin-top:3px;
}
#contentsub::after{
content:'';
display:block;
}
.previewnote, #wikiPreview.ontop{
margin-bottom:10px;
max-width:unset;
}
body.action-submit #mw-content-text > #wikiPreview > .previewnote > #mw-previewheader{
margin-top:0.8em;
margin-bottom:0.4em;
}
div.thumb.tright:first-child,
div.thumb.tleft:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:first-child{
margin-top:0;
}
#mw-content-text .mw-parser-output > p:not(.br-clear-both):last-child{
margin-bottom:0;
}
#mw-content-text .mw-parser-output > :not(p).floatleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).floatright:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tleft:first-child + p,
#mw-content-text .mw-parser-output > :not(p).tright:first-child + p{
margin-top:0;
}
#mw-content-text .mw-parser-output .template-documentation:first-of-type{
margin-top:0;
box-sizing:border-box;
}
#mw-content-text .mw-parser-output > :not(style):not(link) ~ .template-documentation{
margin-top:10px !important;
box-sizing:border-box !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:not(:last-child){
margin-top:3px !important;
margin-bottom:3px !important;
}
#mw-content-text .mw-parser-output #documentation-meta-data:last-child{
margin-top:3px !important;
margin-bottom:0 !important;
}
body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3.only-whitespace.is-only-whitespace::before{
display:block;
content:'(pusta)';
float:left;
}
.vector-body{
font-size: calc(1rem * 0.875);
line-height: 1.5em;
}
@media all and (min-width:999px){
html.vector-feature-page-tools-pinned-enabled #bodyContent.vector-body,
html.vector-feature-appearance-pinned-clientpref-1 #bodyContent.vector-body{
border-right: 1px solid #c8ccd1;
border-bottom:1px solid #c8ccd1;
padding-right:0.625rem;
padding-bottom:0.625rem;
}
}
.vector-toc .vector-toc-list-item a{
font-size:0.8125rem;
line-height:1.4em;
}
.wb-langlinks-link > a::before{
margin-left:-8px;
}
/**/
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover{
display:block;
outline:1px solid #eaecf0;
border-radius:10px;
box-sizing:border-box;
width:100%;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:blue !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:active:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:active:hover{
background-color:green !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
color:white !important;
}
.vector-pinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
.vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
.vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
display:block;
width:100%;
text-decoration:none;
font-size: 0.8125rem;
line-height:1.4em;
box-sizing:border-box;
padding:0 5px !important;
}
.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
margin-top:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-main-menu-container{
margin-bottom:5px;
}
.vector-column-start .vector-main-menu-container,
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available .vector-column-start .vector-sticky-pinned-container{
margin-left:12px;
}
@media (min-width: 999px){
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
border-radius:10px;
border:1px solid #c8ccd1;
padding:8px;
padding-left:6px;
}
}
#mw-panel-toc-list{
margin-top:6px;
}
#vector-toc-pinned-container .vector-toc::after{
display:none;
}
.vector-toc .vector-toc-text{
padding: 3px 0 !important;
}
button.cdx-button{
z-index:1;
}
.vector-menu-tabs .mw-list-item.vector-tab-noicon > a, .vector-page-toolbar-container .vector-dropdown.vector-tab-noicon > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
padding-bottom:3px;
margin-bottom:0;
}
.vector-menu-tabs .mw-list-item > a, .vector-page-toolbar-container .vector-dropdown > a, .vector-menu-tabs .mw-list-item .vector-dropdown-label, .vector-page-toolbar-container .vector-dropdown .vector-dropdown-label{
max-height:37px;
line-height:1.4em;
}
.mw-diff-table-prefix{
max-width:calc( 100% - 2em );
}
.vector-column-start{
border-top:0;
margin-top:0;
}
html.vector-feature-page-tools-pinned-enabled .vector-column-end,
html.vector-feature-appearance-pinned-clientpref-1 .vector-column-end{
margin-top:0;
margin-left:-1px;
border: 1px solid #c8ccd1;
border-top:0;
padding-top:2px;
}
.vector-column-start .vector-sticky-pinned-container{
margin-left:0;
}
.vector-header-container .mw-header{
max-width:none;
min-width:auto;
}
.vector-header-container{
padding-left:0;
padding-right:0;
}
.vector-header-container .mw-header{
padding-left:1.5rem;
padding-right:1.5rem;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc{
margin-right:0;
}
html.vector-feature-toc-pinned-clientpref-1.vector-toc-available #vector-toc-pinned-container{
padding-left:15px;
}
.vector-pinned-container{
padding: 16px 8px;
padding-top:5px;
padding-bottom:0;
}
.vector-dropdown .vector-dropdown-content{
padding-right:4px;
padding-bottom:0;
/*width:800px;*/
}
.vector-dropdown#vector-page-titlebar-toc .vector-dropdown-content{
padding-left:12px
}
.vector-dropdown#vector-page-tools-dropdown .vector-dropdown-content{
padding-left:4px;
padding-bottom:8px;
}
.vector-dropdown#vector-main-menu-dropdown .vector-dropdown-content{
padding-left:4px;
}
.client-js.vector-feature-toc-pinned-clientpref-0 body:not(.vector-sticky-header-visible) .vector-page-titlebar-toc .vector-dropdown-content{
/*max-width:200px;*/
}
.mw-header{
grid-template: auto / 15em minmax(0,1fr);
grid-template-areas:'headerStart headerEnd';
}
#p-navigation.mw-portlet-navigation{
margin-top:0px;
}
.vector-menu.mw-portlet:not(.mw-portlet-navigation){
margin-top:4px;
}
.vector-toc .vector-toc-list-item-active > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded) > .vector-toc-link .vector-toc-text, .vector-toc .vector-toc-list-item-active.vector-toc-level-1-active > .vector-toc-link .vector-toc-text{
width:unset !important;
}
@media not screen{
}
html.vector-feature-custom-font-size-clientpref-0{
font-size:14px;
}
html.vector-feature-custom-font-size-clientpref-1{
font-size:16px;
}
html.vector-feature-custom-font-size-clientpref-2{
font-size:18px;
}
5b3o1b4yvdwcdr9464x0o2amlzv7uk6
Wikipedysta:Persino/vector-2022.js
2
58976
554007
538995
2026-09-02T17:01:05Z
Persino
2851
554007
javascript
text/javascript
importStylesheet("Wikipedysta:Persino/vector-2022.css/skin-night.css");
(function(mw,$){
try{
const inner=$('.mw-page-container-inner').first().get(0);
function checkMainWidth() {
$('html').removeClass('vector-is-page-available');
$(inner).css("width",'');
var wiewport=(window.visualViewport)?window.visualViewport.width:window.innerWidth;
if (inner.offsetWidth >= wiewport) {
$('html').addClass('vector-is-page-available');
$(inner).css("width",wiewport+"px");
}else{
$('html').removeClass('vector-is-page-available');
$(inner).css("width",'');
}
}
checkMainWidth();
$(window).on("resize",checkMainWidth);
$(window).on("scroll",checkMainWidth);
var Vector2022=new Array();
Vector2022.Brudnopis=function(DodatkiSkrypt){
var skin_brudnopis=$('body.action-view:not(.ns-special), body.action-edit, body.action-submit, body.action-history, body.action-delete, body.action-protect, body.action-unprotect, body.action-view.mw-special-Movepage');
if((skin_brudnopis===null)||(skin_brudnopis.length<=0)){return;}
var user=mw.config.get('wgUserName');
if(!user){return;}
var ul_zakladka=skin_brudnopis[0].querySelector('#p-views > .vector-menu-content > .vector-menu-content-list');
var ul_wiecej=skin_brudnopis[0].querySelector('#p-cactions > .vector-menu-content > .vector-menu-content-list');
if((!ul_zakladka)||(!ul_wiecej)){return;}
var caption;
if ( mw.config.get( 'wgUserLanguage' ) !== 'pl' ) {
caption = 'Sandbox';
}else{
caption="Brudnopis";
}
var brudnopis="Wikipedysta:"+(user.replace(/[\s_]/g,"_"))+"/brudnopis";
/*Zakładka*/
var node_zakladka=mw.util.addPortletLink( 'p-views', mw.util.getUrl(brudnopis) + "?redirect=no", caption, 'ca-sandbox', caption, '', ul_zakladka.firstChild);
/*Więcej*/
var node_wiecej=mw.util.addPortletLink( 'p-cactions', mw.util.getUrl(brudnopis) + "?redirect=no", caption, 'ca-sandbox', caption, '', ul_wiecej.firstChild);
node_wiecej.classList.add('vector-more-collapsible-item');
var strona=mw.config.get('wgPageName').replace(/^Dyskusja_wikipedysty/g,"Wikipedysta");
if(strona==brudnopis){
node_zakladka.classList.add('selected');
node_wiecej.classList.add('selected');
}
}
Vector2022.UstawienieMenuNawigacjiWedlugCookie=function(menu_portret,czy_nawigacja){
var czy_odkryty=menu_portret.getAttribute("id");
var menu=$(menu_portret).children('.vector-menu-heading');
var nawigacja=DodatkiSkrypt.DodatkiSkryptUserOption.get(czy_odkryty,"Nawigacja");
return nawigacja.then(function(nawigacja){
if((nawigacja==null)||(nawigacja=="")){
if(czy_nawigacja){
menu.addClass('mw-menu-active');
menu.siblings('.vector-menu-content').addClass('mw-items-active');
}else{
menu.addClass('mw-menu-inactive');
menu.siblings('.vector-menu-content').addClass('mw-items-inactive');
}
}else{
if(nawigacja=="true"){
menu.addClass('mw-menu-active');
menu.siblings('.vector-menu-content').addClass('mw-items-active');
}else{
menu.addClass('mw-menu-inactive');
menu.siblings('.vector-menu-content').addClass('mw-items-inactive');
}
}
})
}
Vector2022.onclickSideBarToc=function(){
var id=$(this);
if(id.hasClass('mw-menu-active')){
id.removeClass('mw-menu-active');
id.addClass('mw-menu-inactive')
var czy_odkryty=id.parent()[0].getAttribute("id");
DodatkiSkrypt.DodatkiSkryptUserOption.set(czy_odkryty,"false","Nawigacja");
}else{
id.removeClass('mw-menu-inactive');
id.addClass('mw-menu-active')
var czy_odkryty=id.parent()[0].getAttribute("id");
DodatkiSkrypt.DodatkiSkryptUserOption.set(czy_odkryty,"true","Nawigacja");
}
var items=id.siblings('.vector-menu-content');
if(items.hasClass('mw-items-active')){
items.removeClass('mw-items-active');
items.addClass('mw-items-inactive')
}else{
items.removeClass('mw-items-inactive');
items.addClass('mw-items-active');
}
}
Vector2022.LewaOrazPrawaNawigacja=function(DodatkiSkrypt){
var portet_nawigacja=$('#vector-main-menu-pinned-container #vector-main-menu .mw-portlet.mw-portlet-navigation, #vector-main-menu-unpinned-container #vector-main-menu .mw-portlet.mw-portlet-navigation, #vector-page-tools-pinned-container .mw-portlet.vector-has-collapsible-items, body #vector-page-tools-unpinned-container .mw-portlet.vector-has-collapsible-items');
var portet_inne_nawigacja=$('#vector-main-menu-pinned-container #vector-main-menu .mw-portlet:not(.mw-portlet-navigation), #vector-main-menu-unpinned-container #vector-main-menu .mw-portlet:not(.mw-portlet-navigation), #vector-page-tools-pinned-container .mw-portlet:not(.vector-has-collapsible-items), body #vector-page-tools-unpinned-container .mw-portlet:not(.vector-has-collapsible-items)');
if((portet_nawigacja==null)||(portet_nawigacja.length==0)||(portet_inne_nawigacja==null)||(portet_inne_nawigacja.length==0)){return;}
portet_nawigacja.each(function(i){Vector2022.UstawienieMenuNawigacjiWedlugCookie(portet_nawigacja[i],true);});
portet_inne_nawigacja.each(function(i){Vector2022.UstawienieMenuNawigacjiWedlugCookie(portet_inne_nawigacja[i],false);});
$('#vector-main-menu-pinned-container #vector-main-menu .mw-portlet > .vector-menu-heading, #vector-main-menu-unpinned-container #vector-main-menu .mw-portlet > .vector-menu-heading, #vector-page-tools-pinned-container .vector-menu-heading, #vector-page-tools-unpinned-container .vector-menu-heading').off("click",Vector2022.onclickSideBarToc).on("click",Vector2022.onclickSideBarToc);
}
/**/
Vector2022.BialeZnaki=function(DodatkiSkrypt){
$('.mw-parser-output, .vector-body-before-content').addClass('is-blank');
DodatkiSkrypt.Boksy.IsBlank();
$('body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3').addClass("is-only-whitespace");
DodatkiSkrypt.Boksy.IsOnlyWhiteSpace();
}
Vector2022.PrawaNawigacja=function(DodatkiSkrypt){
function PrawaNawigacja(){
$('.vector-sticky-pinned-container').addClass('mw-overflow-y');
DodatkiSkrypt.Boksy.ScrollBarOverflow();
}
PrawaNawigacja();
var config = {
childList:true,
characterData: true,
};
$('#vector-page-tools-pinned-container').each(function(i,element_g){
var newObserver = new MutationObserver(function(records, observer){
observer.disconnect();
PrawaNawigacja();
newObserver.observe(element_g, config);
});
newObserver.observe(element_g, config);
});
}
Vector2022.MwParserOutput=function(DodatkiSkrypt){
$('.mw-parser-output').parent().each(function(i,element){
function BlankAndOnlyWhiteSpace(){
$('.mw-parser-output').each(function(i,element){
element.classList.add('is-blank');
DodatkiSkrypt.Boksy.IsBlank();
});
$(null).each(function(i,element){
element.classList.add('is-only-whitespace');
DodatkiSkrypt.Boksy.IsOnlyWhiteSpace();
});
}
function PrintFooter(){
var printfooter=$(element).children('.printfooter').first();
if(printfooter.length>0){
var dziecko=element.removeChild(printfooter[0]);
element.appendChild(dziecko);
}
}
function Revision(){
var revision=$(element).children('.flaggedrevs_notice').first();
if(revision.length>0){
var dziecko=element.removeChild(revision[0]);
element.insertBefore(dziecko,element.firstChild);
}
}
function Parser(){
var parser=$(element).children('.mw-parser-output');
parser.addClass('is-first-child');
parser.addClass('is-last-child');
parser.addClass('parser-mw-parser-output');
parser.addClass('parser-mw-parser-output');
parser.addClass('is-blank');
}
Revision();
PrintFooter();
Parser();
DodatkiSkrypt.Boksy.IsBlank();
DodatkiSkrypt.Boksy.IsOnlyWhiteSpace();
DodatkiSkrypt.Boksy.IsFirstChild();
DodatkiSkrypt.Boksy.IsLastChild();
var config = {
attributes:true,
childList:true,
characterData: true,
};
var newObserver = new MutationObserver(function(records, observer){
observer.disconnect();
Revision();
PrintFooter();
BlankAndOnlyWhiteSpace()
Parser();
DodatkiSkrypt.Boksy.IsBlank();
DodatkiSkrypt.Boksy.IsOnlyWhiteSpace();
DodatkiSkrypt.Boksy.IsFirstChild();
DodatkiSkrypt.Boksy.IsLastChild();
newObserver.observe(element, config);
});
newObserver.observe(element, config);
});
}
Vector2022.KlasyStronyCSSJS=function(DodatkiSkrypt){
var ns=mw.config.get('wgNamespaceNumber');
if((ns!=10)&&(ns!=828)&&(ns!=2)&&(ns!=8)){return;}
var nazwa_strony=mw.config.get('wgPageName');
$('body').removeClass("vector-page-js");$('body').removeClass("vector-page-css");
if(/\.js$/g.test(nazwa_strony)){
$('body').addClass("vector-page-js");
}else if(/\.css$/g.test(nazwa_strony)){
$('body').addClass('vector-page-css');
}
checkMainWidth();
};
Vector2022.FirstHeading=function(DodatkiSkrypt){
var firstheading=$('html.vector-feature-limited-width-content-enabled body.ns-0 .firstHeading').first();
if(firstheading.length>0){
var str=firstheading.find('> span.mw-page-title-main').first();
if(str.length==0){
$(firstheading[0].firstChild).wrap("<span class='mw-page-title-main'></span>");
}
}
}
Vector2022.KlasyStronaStartTOC=function(DodatkiSkrypt){
Vector2022.obietnica=new Promise(function(resolve,reject){
function Czekaj(){
//var DodatkiSkrypt_uzywane=window.UruchamiaczSkryptowyApi&&window.UruchamiaczSkryptowyApi.DodatkiSkrypt&&window.UruchamiaczSkryptowyApi.DodatkiSkrypt();
//var DodatkiSkrypt_uzywane=((DodatkiSkrypt&&DodatkiSkrypt.NoweDodatkiSkrypt)?(DodatkiSkrypt.NoweDodatkiSkrypt()):undefined);
if((window.DodatkiSkrypt)/*&&(DodatkiSkrypt_uzywane["obietnica"])*/){
resolve(window.DodatkiSkrypt);
return;
}
setTimeout(Czekaj,0);
};
Czekaj();
});
Vector2022.obietnica.then(function(DodatkiSkrypt){
var tab_promise_fun=new Array();
tab_promise_fun.push(function(){return Vector2022.FirstHeading(DodatkiSkrypt);});
tab_promise_fun.push(function(){return Vector2022.Brudnopis(DodatkiSkrypt);});
tab_promise_fun.push(function(){return DodatkiSkrypt.UruchomElementyVector(function(){
return Vector2022.LewaOrazPrawaNawigacja(DodatkiSkrypt);
});
});
tab_promise_fun.push(function(){
return DodatkiSkrypt.DodajElementyVector(function(){
return Vector2022.LewaOrazPrawaNawigacja(DodatkiSkrypt);
});
});
tab_promise_fun.push(function(){return Vector2022.BialeZnaki(DodatkiSkrypt);});
tab_promise_fun.push(function(){return Vector2022.KlasyStronyCSSJS(DodatkiSkrypt);});
tab_promise_fun.push(function(){return Vector2022.PrawaNawigacja(DodatkiSkrypt);});
tab_promise_fun.push(function(){return Vector2022.MwParserOutput(DodatkiSkrypt);});
tab_promise_fun.push(function(){
var submit=document.querySelector('body.action-submit');
if(submit){
var id=DodatkiSkrypt.Info.page.namespacenumber;
$(document.body).addClass('ns-submit');
$(document.body).addClass('ns-submit-'+id);
$(document.body).addClass('page-submit-'+(DodatkiSkrypt.Info.page.fullname.replace(/\//g,"_").replace(/:/g,"_").replace(/\./g,"_").replace(/[\s_]+/g,"_")));
Vector2022.KlasyStronyCSSJSSubmit=function(){
var ns=DodatkiSkrypt.Info.page.namespacenumber;
if((ns!=10)&&(ns!=828)&&(ns!=2)&&(ns!=8)){return;}
var nazwa_strony=DodatkiSkrypt.Info.page.fullname;
$('body').removeClass("vector-submit-page-js");$('body').removeClass("vector-submit-page-css");
if(/\.js$/g.test(nazwa_strony)){
$('body').addClass("vector-submit-page-js");
}else if(/\.css$/g.test(nazwa_strony)){
$('body').addClass('vector-submit-page-css');
}
checkMainWidth();
};
return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(Vector2022.KlasyStronyCSSJSSubmit);
};
});
var KlasyStronaStartTOC=function(){
var ns=mw.config.get('wgNamespaceNumber');
var view=document.querySelector('body:not(.action-submit)');
if(view){
if((ns!=0)&&(ns!=104)&&(ns!=4)&&(ns!=12)&&(ns!=2)){return (function(){});};
}
/**/
$('body').removeClass('vector-strona-start');
$('body').removeClass('vector-strona-start-toc');
$('body').removeClass('vector-strona-start-toc-prawy');
$('body').removeClass('vector-strona-start-toc-lewy');
$('body').removeClass('vector-strona-start-toc-górny');
$('body').removeClass('vector-strona-start-toc-dolny');
/**/
var tak_nieukryty=false;
var id_parser_strona_start_strony=$(DodatkiSkrypt.Szereg.IdCSS(1)).find('.strona_start').find('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna');
var tab_ukryte=new Array();
$(id_parser_strona_start_strony).each(function(i,element){
var spis=$(element).find('.nawigacja_spis').first();
if(spis.length>0){
var ul=spis.find('ul').first();
if(ul.length>0){
ul.addClass('is-blank');
DodatkiSkrypt.Boksy.IsBlank();
if(($(ul[0]).hasClass('is-blank'))&&($(ul[0]).hasClass('blank'))){
spis.css('visibility','hidden');
}
}
}
var czy_ukryte=DodatkiSkrypt.StronaStart.CzyNieukrytyLubNiepustyElement(element);
tak_nieukryty=tak_nieukryty || czy_ukryte;
tab_ukryte[i]=czy_ukryte;
});
var __FUNKCJA=function(){
$(id_parser_strona_start_strony).each(function(i,element){
$('body').addClass('vector-strona-start');
if($(element).hasClass('strona_prawa')){
if((tak_nieukryty)&&(tab_ukryte[i])){
$('body').addClass('vector-strona-start-toc-prawy');
$('body').addClass('vector-strona-start-toc');
}
}else if($(element).hasClass('strona_lewa')){
if((tak_nieukryty)&&(tab_ukryte[i])){
$('body').addClass('vector-strona-start-toc');
$('body').addClass('vector-strona-start-toc-lewy');
}
}else if($(element).hasClass('strona_górna')){
if((tak_nieukryty)&&(tab_ukryte[i])){
$('body').addClass('vector-strona-start-toc-górny');
$('body').addClass('vector-strona-start-toc');
}
}else if($(element).hasClass('strona_dolna')){
if((tak_nieukryty)&&(tab_ukryte[i])){
$('body').addClass('vector-strona-start-toc-dolny');
$('body').addClass('vector-strona-start-toc');
}
}
});
}
return __FUNKCJA();
}
tab_promise_fun.push(function(){
KlasyStronaStartTOC();
checkMainWidth();
});
tab_promise_fun.push(function(){
return DodatkiSkrypt.Boksy.StickyXY(null,null,null,null,null,
function(){
return DodatkiSkrypt.StronaStart.ZaznaczTOCStronaStart();
},function(){
return DodatkiSkrypt.StronaStart.UstawScrollSpisRzeczy();
}).DodatkiSkryptThen(function(){
checkMainWidth();
});
});
tab_promise_fun.push(function(){return DodatkiSkrypt.StronaStart.DodawanieFunkcjiDoStronaStart(function(){
KlasyStronaStartTOC();
checkMainWidth();
})});
tab_promise_fun.push(function(){
return DodatkiSkrypt.Strona.AktualizacjaZdarzeniowaMenowaWektorowaBudowyStrony();
});
return DodatkiSkrypt.PoKoleiRozmieszczanieKorutyn(null,null,tab_promise_fun);
});
}
$(Vector2022.KlasyStronaStartTOC);
}catch(error){
console.log("Wykryłem błąd...",error);
}
})(mediaWiki,jQuery);
g6632uztjtegbiehjnx3c12k9nat0k1
554008
554007
2026-09-02T17:01:53Z
Persino
2851
554008
javascript
text/javascript
(function(mw,$){
try{
const inner=$('.mw-page-container-inner').first().get(0);
function checkMainWidth() {
$('html').removeClass('vector-is-page-available');
$(inner).css("width",'');
var wiewport=(window.visualViewport)?window.visualViewport.width:window.innerWidth;
if (inner.offsetWidth >= wiewport) {
$('html').addClass('vector-is-page-available');
$(inner).css("width",wiewport+"px");
}else{
$('html').removeClass('vector-is-page-available');
$(inner).css("width",'');
}
}
checkMainWidth();
$(window).on("resize",checkMainWidth);
$(window).on("scroll",checkMainWidth);
var Vector2022=new Array();
Vector2022.Brudnopis=function(DodatkiSkrypt){
var skin_brudnopis=$('body.action-view:not(.ns-special), body.action-edit, body.action-submit, body.action-history, body.action-delete, body.action-protect, body.action-unprotect, body.action-view.mw-special-Movepage');
if((skin_brudnopis===null)||(skin_brudnopis.length<=0)){return;}
var user=mw.config.get('wgUserName');
if(!user){return;}
var ul_zakladka=skin_brudnopis[0].querySelector('#p-views > .vector-menu-content > .vector-menu-content-list');
var ul_wiecej=skin_brudnopis[0].querySelector('#p-cactions > .vector-menu-content > .vector-menu-content-list');
if((!ul_zakladka)||(!ul_wiecej)){return;}
var caption;
if ( mw.config.get( 'wgUserLanguage' ) !== 'pl' ) {
caption = 'Sandbox';
}else{
caption="Brudnopis";
}
var brudnopis="Wikipedysta:"+(user.replace(/[\s_]/g,"_"))+"/brudnopis";
/*Zakładka*/
var node_zakladka=mw.util.addPortletLink( 'p-views', mw.util.getUrl(brudnopis) + "?redirect=no", caption, 'ca-sandbox', caption, '', ul_zakladka.firstChild);
/*Więcej*/
var node_wiecej=mw.util.addPortletLink( 'p-cactions', mw.util.getUrl(brudnopis) + "?redirect=no", caption, 'ca-sandbox', caption, '', ul_wiecej.firstChild);
node_wiecej.classList.add('vector-more-collapsible-item');
var strona=mw.config.get('wgPageName').replace(/^Dyskusja_wikipedysty/g,"Wikipedysta");
if(strona==brudnopis){
node_zakladka.classList.add('selected');
node_wiecej.classList.add('selected');
}
}
Vector2022.UstawienieMenuNawigacjiWedlugCookie=function(menu_portret,czy_nawigacja){
var czy_odkryty=menu_portret.getAttribute("id");
var menu=$(menu_portret).children('.vector-menu-heading');
var nawigacja=DodatkiSkrypt.DodatkiSkryptUserOption.get(czy_odkryty,"Nawigacja");
return nawigacja.then(function(nawigacja){
if((nawigacja==null)||(nawigacja=="")){
if(czy_nawigacja){
menu.addClass('mw-menu-active');
menu.siblings('.vector-menu-content').addClass('mw-items-active');
}else{
menu.addClass('mw-menu-inactive');
menu.siblings('.vector-menu-content').addClass('mw-items-inactive');
}
}else{
if(nawigacja=="true"){
menu.addClass('mw-menu-active');
menu.siblings('.vector-menu-content').addClass('mw-items-active');
}else{
menu.addClass('mw-menu-inactive');
menu.siblings('.vector-menu-content').addClass('mw-items-inactive');
}
}
})
}
Vector2022.onclickSideBarToc=function(){
var id=$(this);
if(id.hasClass('mw-menu-active')){
id.removeClass('mw-menu-active');
id.addClass('mw-menu-inactive')
var czy_odkryty=id.parent()[0].getAttribute("id");
DodatkiSkrypt.DodatkiSkryptUserOption.set(czy_odkryty,"false","Nawigacja");
}else{
id.removeClass('mw-menu-inactive');
id.addClass('mw-menu-active')
var czy_odkryty=id.parent()[0].getAttribute("id");
DodatkiSkrypt.DodatkiSkryptUserOption.set(czy_odkryty,"true","Nawigacja");
}
var items=id.siblings('.vector-menu-content');
if(items.hasClass('mw-items-active')){
items.removeClass('mw-items-active');
items.addClass('mw-items-inactive')
}else{
items.removeClass('mw-items-inactive');
items.addClass('mw-items-active');
}
}
Vector2022.LewaOrazPrawaNawigacja=function(DodatkiSkrypt){
var portet_nawigacja=$('#vector-main-menu-pinned-container #vector-main-menu .mw-portlet.mw-portlet-navigation, #vector-main-menu-unpinned-container #vector-main-menu .mw-portlet.mw-portlet-navigation, #vector-page-tools-pinned-container .mw-portlet.vector-has-collapsible-items, body #vector-page-tools-unpinned-container .mw-portlet.vector-has-collapsible-items');
var portet_inne_nawigacja=$('#vector-main-menu-pinned-container #vector-main-menu .mw-portlet:not(.mw-portlet-navigation), #vector-main-menu-unpinned-container #vector-main-menu .mw-portlet:not(.mw-portlet-navigation), #vector-page-tools-pinned-container .mw-portlet:not(.vector-has-collapsible-items), body #vector-page-tools-unpinned-container .mw-portlet:not(.vector-has-collapsible-items)');
if((portet_nawigacja==null)||(portet_nawigacja.length==0)||(portet_inne_nawigacja==null)||(portet_inne_nawigacja.length==0)){return;}
portet_nawigacja.each(function(i){Vector2022.UstawienieMenuNawigacjiWedlugCookie(portet_nawigacja[i],true);});
portet_inne_nawigacja.each(function(i){Vector2022.UstawienieMenuNawigacjiWedlugCookie(portet_inne_nawigacja[i],false);});
$('#vector-main-menu-pinned-container #vector-main-menu .mw-portlet > .vector-menu-heading, #vector-main-menu-unpinned-container #vector-main-menu .mw-portlet > .vector-menu-heading, #vector-page-tools-pinned-container .vector-menu-heading, #vector-page-tools-unpinned-container .vector-menu-heading').off("click",Vector2022.onclickSideBarToc).on("click",Vector2022.onclickSideBarToc);
}
/**/
Vector2022.BialeZnaki=function(DodatkiSkrypt){
$('.mw-parser-output, .vector-body-before-content').addClass('is-blank');
DodatkiSkrypt.Boksy.IsBlank();
$('body.ns-14 .mw-category-generated > * > .mw-content-ltr > .mw-category > .mw-category-group > h3').addClass("is-only-whitespace");
DodatkiSkrypt.Boksy.IsOnlyWhiteSpace();
}
Vector2022.PrawaNawigacja=function(DodatkiSkrypt){
function PrawaNawigacja(){
$('.vector-sticky-pinned-container').addClass('mw-overflow-y');
DodatkiSkrypt.Boksy.ScrollBarOverflow();
}
PrawaNawigacja();
var config = {
childList:true,
characterData: true,
};
$('#vector-page-tools-pinned-container').each(function(i,element_g){
var newObserver = new MutationObserver(function(records, observer){
observer.disconnect();
PrawaNawigacja();
newObserver.observe(element_g, config);
});
newObserver.observe(element_g, config);
});
}
Vector2022.MwParserOutput=function(DodatkiSkrypt){
$('.mw-parser-output').parent().each(function(i,element){
function BlankAndOnlyWhiteSpace(){
$('.mw-parser-output').each(function(i,element){
element.classList.add('is-blank');
DodatkiSkrypt.Boksy.IsBlank();
});
$(null).each(function(i,element){
element.classList.add('is-only-whitespace');
DodatkiSkrypt.Boksy.IsOnlyWhiteSpace();
});
}
function PrintFooter(){
var printfooter=$(element).children('.printfooter').first();
if(printfooter.length>0){
var dziecko=element.removeChild(printfooter[0]);
element.appendChild(dziecko);
}
}
function Revision(){
var revision=$(element).children('.flaggedrevs_notice').first();
if(revision.length>0){
var dziecko=element.removeChild(revision[0]);
element.insertBefore(dziecko,element.firstChild);
}
}
function Parser(){
var parser=$(element).children('.mw-parser-output');
parser.addClass('is-first-child');
parser.addClass('is-last-child');
parser.addClass('parser-mw-parser-output');
parser.addClass('parser-mw-parser-output');
parser.addClass('is-blank');
}
Revision();
PrintFooter();
Parser();
DodatkiSkrypt.Boksy.IsBlank();
DodatkiSkrypt.Boksy.IsOnlyWhiteSpace();
DodatkiSkrypt.Boksy.IsFirstChild();
DodatkiSkrypt.Boksy.IsLastChild();
var config = {
attributes:true,
childList:true,
characterData: true,
};
var newObserver = new MutationObserver(function(records, observer){
observer.disconnect();
Revision();
PrintFooter();
BlankAndOnlyWhiteSpace()
Parser();
DodatkiSkrypt.Boksy.IsBlank();
DodatkiSkrypt.Boksy.IsOnlyWhiteSpace();
DodatkiSkrypt.Boksy.IsFirstChild();
DodatkiSkrypt.Boksy.IsLastChild();
newObserver.observe(element, config);
});
newObserver.observe(element, config);
});
}
Vector2022.KlasyStronyCSSJS=function(DodatkiSkrypt){
var ns=mw.config.get('wgNamespaceNumber');
if((ns!=10)&&(ns!=828)&&(ns!=2)&&(ns!=8)){return;}
var nazwa_strony=mw.config.get('wgPageName');
$('body').removeClass("vector-page-js");$('body').removeClass("vector-page-css");
if(/\.js$/g.test(nazwa_strony)){
$('body').addClass("vector-page-js");
}else if(/\.css$/g.test(nazwa_strony)){
$('body').addClass('vector-page-css');
}
checkMainWidth();
};
Vector2022.FirstHeading=function(DodatkiSkrypt){
var firstheading=$('html.vector-feature-limited-width-content-enabled body.ns-0 .firstHeading').first();
if(firstheading.length>0){
var str=firstheading.find('> span.mw-page-title-main').first();
if(str.length==0){
$(firstheading[0].firstChild).wrap("<span class='mw-page-title-main'></span>");
}
}
}
Vector2022.KlasyStronaStartTOC=function(DodatkiSkrypt){
Vector2022.obietnica=new Promise(function(resolve,reject){
function Czekaj(){
//var DodatkiSkrypt_uzywane=window.UruchamiaczSkryptowyApi&&window.UruchamiaczSkryptowyApi.DodatkiSkrypt&&window.UruchamiaczSkryptowyApi.DodatkiSkrypt();
//var DodatkiSkrypt_uzywane=((DodatkiSkrypt&&DodatkiSkrypt.NoweDodatkiSkrypt)?(DodatkiSkrypt.NoweDodatkiSkrypt()):undefined);
if((window.DodatkiSkrypt)/*&&(DodatkiSkrypt_uzywane["obietnica"])*/){
resolve(window.DodatkiSkrypt);
return;
}
setTimeout(Czekaj,0);
};
Czekaj();
});
Vector2022.obietnica.then(function(DodatkiSkrypt){
var tab_promise_fun=new Array();
tab_promise_fun.push(function(){return Vector2022.FirstHeading(DodatkiSkrypt);});
tab_promise_fun.push(function(){return Vector2022.Brudnopis(DodatkiSkrypt);});
tab_promise_fun.push(function(){return DodatkiSkrypt.UruchomElementyVector(function(){
return Vector2022.LewaOrazPrawaNawigacja(DodatkiSkrypt);
});
});
tab_promise_fun.push(function(){
return DodatkiSkrypt.DodajElementyVector(function(){
return Vector2022.LewaOrazPrawaNawigacja(DodatkiSkrypt);
});
});
tab_promise_fun.push(function(){return Vector2022.BialeZnaki(DodatkiSkrypt);});
tab_promise_fun.push(function(){return Vector2022.KlasyStronyCSSJS(DodatkiSkrypt);});
tab_promise_fun.push(function(){return Vector2022.PrawaNawigacja(DodatkiSkrypt);});
tab_promise_fun.push(function(){return Vector2022.MwParserOutput(DodatkiSkrypt);});
tab_promise_fun.push(function(){
var submit=document.querySelector('body.action-submit');
if(submit){
var id=DodatkiSkrypt.Info.page.namespacenumber;
$(document.body).addClass('ns-submit');
$(document.body).addClass('ns-submit-'+id);
$(document.body).addClass('page-submit-'+(DodatkiSkrypt.Info.page.fullname.replace(/\//g,"_").replace(/:/g,"_").replace(/\./g,"_").replace(/[\s_]+/g,"_")));
Vector2022.KlasyStronyCSSJSSubmit=function(){
var ns=DodatkiSkrypt.Info.page.namespacenumber;
if((ns!=10)&&(ns!=828)&&(ns!=2)&&(ns!=8)){return;}
var nazwa_strony=DodatkiSkrypt.Info.page.fullname;
$('body').removeClass("vector-submit-page-js");$('body').removeClass("vector-submit-page-css");
if(/\.js$/g.test(nazwa_strony)){
$('body').addClass("vector-submit-page-js");
}else if(/\.css$/g.test(nazwa_strony)){
$('body').addClass('vector-submit-page-css');
}
checkMainWidth();
};
return $(document).DodatkiSkryptGotowaFunkcjaMuteksowa(Vector2022.KlasyStronyCSSJSSubmit);
};
});
var KlasyStronaStartTOC=function(){
var ns=mw.config.get('wgNamespaceNumber');
var view=document.querySelector('body:not(.action-submit)');
if(view){
if((ns!=0)&&(ns!=104)&&(ns!=4)&&(ns!=12)&&(ns!=2)){return (function(){});};
}
/**/
$('body').removeClass('vector-strona-start');
$('body').removeClass('vector-strona-start-toc');
$('body').removeClass('vector-strona-start-toc-prawy');
$('body').removeClass('vector-strona-start-toc-lewy');
$('body').removeClass('vector-strona-start-toc-górny');
$('body').removeClass('vector-strona-start-toc-dolny');
/**/
var tak_nieukryty=false;
var id_parser_strona_start_strony=$(DodatkiSkrypt.Szereg.IdCSS(1)).find('.strona_start').find('.strona_prawa, .strona_lewa, .strona_górna, .strona_dolna');
var tab_ukryte=new Array();
$(id_parser_strona_start_strony).each(function(i,element){
var spis=$(element).find('.nawigacja_spis').first();
if(spis.length>0){
var ul=spis.find('ul').first();
if(ul.length>0){
ul.addClass('is-blank');
DodatkiSkrypt.Boksy.IsBlank();
if(($(ul[0]).hasClass('is-blank'))&&($(ul[0]).hasClass('blank'))){
spis.css('visibility','hidden');
}
}
}
var czy_ukryte=DodatkiSkrypt.StronaStart.CzyNieukrytyLubNiepustyElement(element);
tak_nieukryty=tak_nieukryty || czy_ukryte;
tab_ukryte[i]=czy_ukryte;
});
var __FUNKCJA=function(){
$(id_parser_strona_start_strony).each(function(i,element){
$('body').addClass('vector-strona-start');
if($(element).hasClass('strona_prawa')){
if((tak_nieukryty)&&(tab_ukryte[i])){
$('body').addClass('vector-strona-start-toc-prawy');
$('body').addClass('vector-strona-start-toc');
}
}else if($(element).hasClass('strona_lewa')){
if((tak_nieukryty)&&(tab_ukryte[i])){
$('body').addClass('vector-strona-start-toc');
$('body').addClass('vector-strona-start-toc-lewy');
}
}else if($(element).hasClass('strona_górna')){
if((tak_nieukryty)&&(tab_ukryte[i])){
$('body').addClass('vector-strona-start-toc-górny');
$('body').addClass('vector-strona-start-toc');
}
}else if($(element).hasClass('strona_dolna')){
if((tak_nieukryty)&&(tab_ukryte[i])){
$('body').addClass('vector-strona-start-toc-dolny');
$('body').addClass('vector-strona-start-toc');
}
}
});
}
return __FUNKCJA();
}
tab_promise_fun.push(function(){
KlasyStronaStartTOC();
checkMainWidth();
});
tab_promise_fun.push(function(){
return DodatkiSkrypt.Boksy.StickyXY(null,null,null,null,null,
function(){
return DodatkiSkrypt.StronaStart.ZaznaczTOCStronaStart();
},function(){
return DodatkiSkrypt.StronaStart.UstawScrollSpisRzeczy();
}).DodatkiSkryptThen(function(){
checkMainWidth();
});
});
tab_promise_fun.push(function(){return DodatkiSkrypt.StronaStart.DodawanieFunkcjiDoStronaStart(function(){
KlasyStronaStartTOC();
checkMainWidth();
})});
tab_promise_fun.push(function(){
return DodatkiSkrypt.Strona.AktualizacjaZdarzeniowaMenowaWektorowaBudowyStrony();
});
return DodatkiSkrypt.PoKoleiRozmieszczanieKorutyn(null,null,tab_promise_fun);
});
}
$(Vector2022.KlasyStronaStartTOC);
}catch(error){
console.log("Wykryłem błąd...",error);
}
})(mediaWiki,jQuery);
9dswxdgnajjczkxx4fxis0d6ye42e28
Wikibooks:Moduły/StronicowyParser/Rozdziały
4
63903
553988
553211
2026-09-02T15:03:57Z
Persino
2851
/* Zmienne szablonowe rozkładu ich na czynniki pierwsze */
553988
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== Wstęp ==
Poniższe funkcje służą do analizowania stron spisu treści, aby przygotować je do analizowania przez moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
=== Rozdziały ===
* Dodatnie - dzielimy je na normalne i inne, a te na rozdziały centrowane znacznikowe i centrowane:
** normalne (równaniowe) - to są rozdziały napisane za pomocą znaku {{Code|{{=}}}}, które po prawej i lewej stronie znajduje się tych znaków minimalnie taka sama liczba, a pomiędzy nimi jest zwykły tekst, i nie tylko, są to rozdziały typu, np.: {{Code|<nowiki>== Tekst rozdziału ==</nowiki>}},
** Inne (nierównaniowe):
*** Rozdziały centrowane znacznikowe - są to rozdziały dodatnie napisane za pomocą znacznika: {{Tag|center}}, przykład: {{Tag|center|zawartość=Tekst rozdziału}},
*** Rozdziały centrowane szablonowe - są to rozdziały dodatnie napisane przy pomocy jednego szablonu z: {{s|Center}}, {{s|Centruj}} lub {{s|Ce}}, przykład: {{Code|{{s|Center|Tekst rozdziału}}}},
*** Rozdziały sztucznego napisu wprowadzenia tekstu, dla szablonów takich jak: {{s|HNumer}}, gdzie jego parametr pierwszy, to zwykły anormalny rozdział dodatni równaniowy, nawet z niedozwoloną liczbą równa się po obu stronach,
* Ujemne - to są listy w liniach zaczynających się od znaku: {{Code|<nowiki>[;%*:#]</nowiki>}}, nie mogą być to znaczniki list, za tymi znakami znajduje się zwykły tekst, i nie tylko, są to rozdziały typu: {{Code|<nowiki>:** Tekst rozdziału</nowiki>}},
* Zerowe - to są rozdziały nie będące ani dodatnie, czy ujemne, ale nie wszystkie takie są zerowe, to zależy od pewnych kryteriów ustalanych przez funkcję: {{Code|{{sr|#p.CzyZerowyNapisWprowadzeniaTekstu|p=StronicowyParser/Rozdziały/Tom II}}}}, są to rozdziały typu: {{Code|Tekst rozdziału:}}.
=== Zmienne spotykane w opisywanych tutaj funkcjach ===
==== Zmienne bazy ====
W poniższych funkcjach często spotykamy parametry:
* {{Code|tekst}} {{Patrz|tekst}} (cały tekst), {{Code|linia}} {{Patrz|linia}} (linia w tekście) - tekst przeważnie zakodowany funkcją kodującą, mogący być modyfikowany przez inne funkcje,
* {{Code|szablon}} {{Patrz|szablon}} - zakodowany tekst szablonu, jak w: {{LinkPatrz|tekst}}, tym szablonem może być też nie tylko normalnie szablon, ale może być to jakikolwiek instrukcja warunkowa wikikodu,
* {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{Patrz|pelna_nazwa_spisu_tresci_szablonowa}} - pełna nazwa strony szablonowe jakiegoś spisu podręcznika, potrzebna do analizy adresów: {{Code|./}} lub {{Code|../}}, do rozwijania ich adresów względnych do bezwzględnych. Jest liczona bez nazwy przestrzeni {{Np|Template|link=tak}}, w tej przestrzeni, a w innych z przestrzeniami, a w {{Np|(main)|link=tak}} z dwukropkiem na początku.
==== Zmienne szablonowe rozkładu ich na czynniki pierwsze ====
* {{Code|tabela_parametrow_szablonu}} {{Patrz|tabela_parametrow_szablonu}} - tabela parametrów szablonu,
* {{Code|nazwa_szablonu}} {{Patrz|nazwa_szablonu}} - nazwa szablonu,
* {{Code|tabela_modyfikatorow}} {{Patrz|tabela_modyfikatorow}} - tabela jego modyfikatorów.
==== Zmienne znacznikowe: '''{{lpg|HTML}}''' i mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' ====
* {{Code|nazwa}} {{Patrz|nazwa}} - nazwa znacznika, napisana małymi literami,
* {{Code|zawartosc}} {{Patrz|zawartosc}} - zawartość znacznika, pomiędzy tagami,
* {{Code|atrybuty}} {{Patrz|atrybuty}} - atrybuty znacznika, w tagach.
==== Baza danych wikikodu ====
Tutaj są opisywane funkcje i zmienne, które dotyczą kodowania baz danych wikikodu.
===== Zmienne bazy danych i do nich parametrów =====
* {{Code|nazwa_modulu}} {{Patrz|nazwa_modulu}} - nazwa modułu (uchwyt) używana zamiast tabeli bazy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, jeżeli taki istnieje w bazie wewnętrznym funkcji: {{Code|{{m|Szablonowe}}}},
* {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{Patrz|tablica_analizy_obiektow_strony_dany_modul}} - tablica kodów bazy: {{Code|{{m|Szablonowe}}}}, generowaną przez funkcję: {{LinkPatrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}}, z modułu: {{Code|{{ld2|Szablonowe/Potrzebne}}}}, i modyfikowane przez inne,
* {{Code|tablica_danych_parametrow_szablonu_strony}} {{Patrz|tablica_danych_parametrow_szablonu_strony}} - tablica parametrów rozłożeń na mniejsze elementy różnych elementów bazy.
===== Inne elementy bazy =====
* {{Code|tab_nazwa_spisow_przekierowaniowych}} {{Patrz|tab_nazwa_spisow_przekierowaniowych}} - tabela potrzebna do rozważań dla funkcji: {{LinkPatrz|AnalizujLinkSzablonyOrazLinki}}, mówiąca coś o przekierowaniach, aby nie liczyć pewnych parametrów od począdku.
==== Funkcje bazy danych i do nich parametrów ====
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} - funkcja, która usuwa elementy w tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{Patrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} - fukcja, która usuwa elementy, i w ich powiązanych metablicach, w tablicy {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}.
==== Inne funkcje ====
Inne funkcje używane przez opisywany moduł.
===== Funkcje bazy =====
* {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}} {{Patrz|IteratorSzablonowyZakodowanegoTekstu}} - służy on jako iterator po zakodowany elementach, w tym elementach szablonowych, ale też w tym warunkowych,
* {{Code|{{sr|#p.KodowanieSzablonowegoTekstuZObiektamiWikikodu|p=Szablonowe/Potrzebne}}}}{{Patrz|KodowanieSzablonowegoTekstuZObiektamiWikikodu}} - funkcja służąca do kodowania i modyfikowania tekstu, zastępując w nim elementy ich kodami, tworząc tablicę kodów: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, którego elementu można rozkładać i umieszczać w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}},
* {{Code|{{sr|#p.NormaWzoruKodowaniaTekstu|p=Szablonowe}}}} {{Patrz|NormaWzoruKodowaniaTekstu}} - sprawdzająca, czy w kodzie są kody (czy tekst jest zakodowany), tzn. czy są kody o jakikolwiek {{Code|obiekt}} {{LinkPatrz|obiekt}} (typ obiektu kodu) i {{Code|kod}} {{LinkPatrz|kod}} (o liczbie całkowitej dodatniej).
===== Inne =====
* {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}} {{Patrz|AnalizujLinkSzablonyOrazLinki}} - funkcja do analizowania linków zwykłych wewnętrznychi zewnętrznych oraz linków tzw. inteligentnych.
==== Elementy bazy ====
* {{Code|obiekt}} {{Patrz|obiekt}} - parametr, w postaci łańcucha znakowego typu elementu w kodzie,
* {{Code|kod}} {{Patrz|kod}} - numer tego elementu o danym typie {{LinkPatrz|obiekt}}. Te numery mogą mieć przerwy, możliwie zaczynające się od jedynki, ale nigdy od zera, dla kodów tego samego typu, bo za pomocą innych funkcji można skasować to z jedynką lub elementy powodujące przerwy, te operacje są według {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}.
==== Inne zmienne ====
* {{Code|nazwa_przestrzeni}} {{Patrz|nazwa_przestrzeni}}, {{Code|nazwa_przestrzeni_ksiazki}} {{Patrz|nazwa_przestrzeni_ksiazki}} i {{Code|nazwa_ksiazki}} {{Patrz|nazwa_ksiazki}} - te parametry przedstawiają: nazwę przestrzeni nazw strony, nazwę przestrzeni książki i nazwę ksiązki,
* {{Code|nazwa_spisu_tresci}} {{Patrz|nazwa_spisu_tresci}} - nazwa artykułu spisu treści.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, do usuwania elementów tabeli parametrów ===
Funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}}, często ją się definiuje:
<syntaxhighlight lang="lua">
local szablonowe_modul=require("Module:Szablonowe");
local tab_analiza=szablonowe_modul.LiczbyParametroweInformacjiBazyKodowaniaWikikodu();
local __FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE=function(szablon,obiekt,kod,poziom_iteracji)
local tab_obiekt=tab_analiza[obiekt];
if(not tab_obiekt)then return;end;
for _,wartosc in pairs(tab_obiekt)do
local element_wartosc=tablica_danych_parametrow_szablonu_strony[wartosc];
if(element_wartosc)then
element_wartosc[kod]=nil;
end;
end;
end;
</syntaxhighlight>
Ta funkcja usuwa elementy tablicy: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony}}, które są reprezentowane przez element liczbowy {{Code|kod}} {{LinkPatrz|kod}}.
=== Przykładowy kod funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, do usuwania elementów tabeli bazy ===
A funkcję: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}}, można zdefiniować, usuwając z tablicy wielowymiarowej jeden element reprezentowany przez dwie zmienne:
<syntaxhighlight lang="lua">
local __FUNKCJA_OPERACJE_USUWANIE_BAZOWE=function(szablon,obiekt,kod,poziom_iteracji)
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=nil;
end;
</syntaxhighlight>
Przy tej funkcji należy uważać, aby nie wywołać błędu języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, jakby element {{Code|obiekt}} {{LinkPatrz|obiekt}} nie istniał w tabeli.
Ta funkcja usuwa elementy z tablicy: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul}}, które są reprezentowane przez zmienne: {{Code|obiekt}} {{LinkPatrz|obiekt}} i {{Code|kod}} {{LinkPatrz|kod}}.
== Spis treści ==
Przedstawia funkcje do zbierania informacji o spisach, ale w sferze wstępnej w wersji preanalizowanej, nie tak jak robi moduł: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}, które wykorzystuje ten moduł opisywany, do zbierania informacji o nagłówkach i w nich rozdziałami, z informacjami, które są elementami charakteryzującymi dany artykuł, a nawet rozdział, czyli w tej dokumentacji są te funkcje:
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom I}} - do uzyskiwania informacji o sekcji i tekście rozdziału pomiędzy poszczególnymi sekcjami o danych identyfikatorach,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom II}} - do analizowania napisów wprowadzenia tekstu z postaci surowej, w tym rozdziały dodatnie, czy nagłówkowe,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom III}} - do modyfikacji analizowanej strony do lepszego formatu, by później lłatwo dałosię go parsować, by uzyskać pewne, ściśle okreslone elementy informacyjne,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom IV}} - do parsowania linii, ale nie linii będących rozdziałem dodatnim równaniowym, za pomocą zwróconej funkcji, która poza ciałem, ale w wiekszej funkcji rodzicu, są zbieranne informacje, pomędzy analizowanymi liniami, które mogą być rozdziałami, ale nie muszą być, bo niekażda linia jest sekcją w uznaniu fukncji w opisywanym tym module,
* {{lru|Moduły/StronicowyParser/Rozdziały/Tom V}} - do skladania i zbierania informacji o rozdziałach i ich tekstach rozdziałów, i z nimi stowarzyszącymi elementami, jest to robione przy pomocy iteratora, który analizuje poszczególne sekcje, wraz z ich informacjami.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8iggsukhlgv8yqpkja9be0x8tisa7fy
Wikibooks:Moduły/StronicowyParser/Rozdziały/Tom V
4
63907
553963
553962
2026-09-02T12:00:43Z
Persino
2851
/* Definicje potrzebnych funkcji do opisu działającego kodu */
553963
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu centrowania przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|lua}} w {{lpr|Lua|SScribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
8zylptaj0ltdwpryw8n3zkt298z9imd
553964
553963
2026-09-02T12:07:21Z
Persino
2851
/* Definicje potrzebnych funkcji do opisu działającego kodu */
553964
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
bsbip0on63i0ez3llmy3m8nl5nbm6fp
553965
553964
2026-09-02T12:09:37Z
Persino
2851
/* {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} */
553965
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
5aq92ak4pmj4o4ydwt52bmhbjrci84w
553966
553965
2026-09-02T12:11:05Z
Persino
2851
/* {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} */
553966
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy przy pomocy tabeli: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, czy znacznikowy, którym jest: {{Tag|center}}, lub określone tabelą: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}. W obu tych rozgałęzieniach funkcji jest uruchamiana procedura: {{LinkŚródtytuł|Modyfikacja}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się nie zmieniła, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
Funkcja jedynie działa w dwóch sprawdzanych zakresach, tzn. {{Code|SZABLON}} i {{Code|ZNACZNIK}}, w nich wywoływana jest funkcja {{LinkŚródtytuł|Modyfikacja}}, którego drugi element określa, czy coś się zmieniło, a pierwszą wartością jest ta wartość zmieniona, lub nie.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
om141e1pjnpprw5gmcnpud9wq68eb6w
553967
553966
2026-09-02T12:33:05Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
553967
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej fukcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ea3tcf5zow22oldo2ookqq3g4qsjcvb
553968
553967
2026-09-02T12:34:05Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
553968
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej fukcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ihgb2mhujnfcenisk1p2wo3hmog41jz
553969
553968
2026-09-02T12:36:58Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
553969
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością, a ta nowa jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}}, to na poczatek tego czegoś nowego jest dodawany odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwie nowe linie, a na końcu jedna, i to jest zwracane, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kywu8cf8pb7as0uxegbnt0d7rru7j5v
553970
553969
2026-09-02T12:58:27Z
Persino
2851
/* {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} */
553970
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fj9jc99byc4pxevyd2puzeihzujf2ec
553977
553970
2026-09-02T13:28:13Z
Persino
2851
/* {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} */
553977
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, bo w znaczniku nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
ihj0utdtn0mj2pedhkax9r6c5nk94ce
553978
553977
2026-09-02T13:36:52Z
Persino
2851
/* {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} */
553978
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, lub nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
c0z7grxnmzo0svzv0k3vxlfamgkeoj5
553979
553978
2026-09-02T13:50:17Z
Persino
2851
/* {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} */
553979
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię,
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
50gosnm4a7a2nmh1ati8k9iazr0dfte
553980
553979
2026-09-02T14:03:47Z
Persino
2851
/* {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} */
553980
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nimjest dowolna liczba równa się po keweji po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, wtedy głónym rozdziale dodatnm, czy ujemnym, tego już nie ma, i mamy czyste te rozdziały. Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
p78srxtlfyfb1uqbjh93oc9q6stsqpe
553981
553980
2026-09-02T14:04:51Z
Persino
2851
/* {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} */
553981
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nimjest dowolna liczba równa się po keweji po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, wtedy głónym rozdziale dodatnm, czy ujemnym, tego już nie ma, i mamy czyste te rozdziały. Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m3y3uiaqs9k5tahhxx0ixksi3cl9nv4
553982
553981
2026-09-02T14:06:40Z
Persino
2851
/* {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} */
553982
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, wtedy w głównym rozdziale dodatnm, czy ujemnym, tego już nie ma, i mamy czyste te rozdziały. Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu {{Code|SZABLON}}, nowe linie: {{s|Br}}, nawet kreskowe: {{s|Hr}}, są zamieniane na spację. Szablony napisu wprowadzenia tekstu: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, są zamieniane na ich zawartości. A dla elementu {{Code|ZNACZNIK}}, czyli znaczniki: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, są zamieniane na spację. A całe naczniki, tzn.: {{Tag|center}} i {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, są zamieniane na ich zawartości.
Dla znacznika: {{Tag|pre}}, czyli obiekt {{Code|PRE}}, gdy ona nie ma zawartości, to zamiast niego jest wyświetlana zawartość równą jednej spacji.
Dla specjalnego tagu {{Tag|nowiki}} mechanizmu MediaWiki znaki specjalne kodu zamieniane są na znaki kodu {{Strong|HTML}}, czyli według funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}. Gdy mamy rozdział dodatni według {{LinkPatrz|czy_rozdział_dodatni}}, wtedy znaki nowej linii {{Code|\n}} zawartości są zamieniane na znak jednej spacji. Podobnie robimy dla obiektu {{Code|ŻRÓDŁO}}.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
gdk8pyw1x129i0ort8lff70xbgxg0aw
553983
553982
2026-09-02T14:25:01Z
Persino
2851
/* {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} */
553983
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji w odpowiednie kody {{Strong|HTML}}, lub w edytować linki zewnętrzne {{Code|LINKZ}} bez nazwy, by napisać ich numerki uruchomień, aby była zachowana kolejność numerowania szablonów, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}}, która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w tym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
f3wacmy3ojvugho198j7s3wlswihpdd
553984
553983
2026-09-02T14:38:10Z
Persino
2851
/* Zmiana tekstu krok 1 */
553984
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzustamy do definici funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
m65ox9x4407d5t3j4z8o0zd3j25untc
553985
553984
2026-09-02T14:42:13Z
Persino
2851
/* Zmiana tekstu krok 1 */
553985
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzustamy do definici funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
jt5nw3aqkguaqjnzky3smfwcph7029c
553986
553985
2026-09-02T14:42:57Z
Persino
2851
/* Zmiana tekstu krok 1 */
553986
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzustamy do definici funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, jako pierwszy argument modyfikujący tekst, w przypadku innym niż szablony i znaczniki referencji - nazwane i nienazwane, oraz numerujące linki zewnętrzne nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
02xemfnewmhynciwxnxrqp4rx9n07tz
553987
553986
2026-09-02T14:49:07Z
Persino
2851
/* Zmiana tekstu krok 1 */
553987
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
* Parametry znacznikowe:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
n1ckyyrb2088diky5ppad5zm4yc4oqm
553989
553987
2026-09-02T15:05:42Z
Persino
2851
/* Zmiana tekstu krok 1 */
553989
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Parametry tej funkcji, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}},
; Zmienne parametrowe funkcji, trzy przedostatnie parametry{{dk}}
* Parametry dla elementu typu: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|SZABLON}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}},
* Parametry dla: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|ZNACZNIK}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}},
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
lqwj5heh9bodeug8rbeek98bpjhs7mu
553990
553989
2026-09-02T15:07:45Z
Persino
2851
/* Zmiana tekstu krok 1 */
553990
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
** {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{Patrz|nazwa}}, czyli jak nazwa znacznika,
** {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{Patrz|zawartość}}, czyli zawartość znacznika,
** {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{Patrz|tab_atrybuty}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Parametry tej funkcji, pierwsze trzy, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
; Zmienne parametrowe funkcji, trzy przedostatnie parametry{{dk}}
* Parametry dla elementu typu: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|SZABLON}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
* Parametry dla: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|ZNACZNIK}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
618382jm2pgy1hj7h3vp7xalruii204
553991
553990
2026-09-02T15:15:07Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
553991
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
; Parametry szablonowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry znacznikowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{LinkPatrz|zawartość|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{LinkPatrz|tab_atrybuty|StronicowyParser/RozdziałyStronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Parametry tej funkcji, pierwsze trzy, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
; Zmienne parametrowe funkcji, trzy przedostatnie parametry{{dk}}
* Parametry dla elementu typu: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|SZABLON}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
* Parametry dla: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|ZNACZNIK}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
dzoaumqgho6uqdm3w8b4r6nvtdg9jgy
553992
553991
2026-09-02T15:16:47Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
553992
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
; Parametry szablonowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry znacznikowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartość}} {{LinkPatrz|zawartość|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tab_atrybuty}} {{LinkPatrz|tab_atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Parametry tej funkcji, pierwsze trzy, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
; Zmienne parametrowe funkcji, trzy przedostatnie parametry{{dk}}
* Parametry dla elementu typu: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|SZABLON}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
* Parametry dla: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|ZNACZNIK}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
kogzm7tv0li3k6546xkr8z9fm7w7ymw
553993
553992
2026-09-02T15:18:08Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
553993
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
; Parametry szablonowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry znacznikowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Parametry tej funkcji, pierwsze trzy, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
; Zmienne parametrowe funkcji, trzy przedostatnie parametry{{dk}}
* Parametry dla elementu typu: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|SZABLON}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
* Parametry dla: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|ZNACZNIK}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
9fb31kahcoxlsc3xk9cd94fvvpp2aer
553994
553993
2026-09-02T15:19:30Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
553994
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
; Parametry szablonowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry znacznikowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Parametry tej funkcji, pierwsze trzy, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
; Zmienne parametrowe funkcji, trzy przedostatnie parametry{{dk}}
* Parametry dla elementu typu: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|SZABLON}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
* Parametry dla: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|ZNACZNIK}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1}}, jest to: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2}}, jest to: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3}}, jest to: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
6s4bbnwrg44gdf7rw51c4ipvdtoeniz
553995
553994
2026-09-02T15:21:41Z
Persino
2851
/* Zmiana tekstu krok 1 */
553995
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
; Parametry szablonowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry znacznikowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Parametry tej funkcji, pierwsze trzy, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
; Zmienne parametrowe funkcji, trzy przedostatnie parametry{{dk}}
* Parametry dla elementu typu: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|SZABLON}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1-szablonowe}}, jest to: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2-szablonowe}}, jest to: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3-szablonowe}}, jest to: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
* Parametry dla: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|ZNACZNIK}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1-znacznikowe}}, jest to: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2-znacznikowe}}, jest to: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3-znacznikowe}}, jest to: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
abwh7roklyzmyuqm8a7hbqbdgi6r9kw
553996
553995
2026-09-02T15:46:02Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
553996
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
; Parametry szablonowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry znacznikowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Parametry tej funkcji, pierwsze trzy, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
; Zmienne parametrowe funkcji, trzy przedostatnie parametry{{dk}}
* Parametry dla elementu typu: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|SZABLON}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1-szablonowe}}, jest to: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2-szablonowe}}, jest to: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3-szablonowe}}, jest to: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
* Parametry dla: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} {{=}} {{Code|ZNACZNIK}}:
** {{Code|parametr1}} - jak w: {{LinkPatrz|parametr1-znacznikowe}}, jest to: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}},
** {{Code|parametr2}} - jak w: {{LinkPatrz|parametr2-znacznikowe}}, jest to: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}},
** {{Code|parametr3}} - jak w: {{LinkPatrz|parametr3-znacznikowe}}, jest to: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fhglk3hr0wce6c8gvbplk5oo7n874ct
553997
553996
2026-09-02T15:47:21Z
Persino
2851
/* Zmiana tekstu krok 1 */
553997
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
; Parametry szablonowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry znacznikowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
* Parametry tej funkcji, jak w: {{LinkZobaczTeż|parametry znacznikowe}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
fmrod6e1ipxq69z5wu6lswx4v6ctjdm
553998
553997
2026-09-02T15:49:04Z
Persino
2851
/* Zmiana tekstu krok 1 */
553998
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry znacznikowe, jedynie, gdy obiekt dla wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu {{Code|ZNACZNIK}}, wtedy one tylko w takim wypadku mają słuszność:
; Parametry szablonowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry znacznikowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
; Parametry podstawowe{{dk}}
* Parametry tej funkcji, jak w: {{LinkZobaczTeż|parametry znacznikowe}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
56l08n8gdgfjrc6giplzen7qxifchv6
553999
553998
2026-09-02T16:14:46Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
553999
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
* Parametry szablonowe, gdy obiekt wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|SZABLON}}, wtedy one mają taką słuszność:
; Parametry w wersji - szablonowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
* Parametry znacznikowe, gdy obiekt: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|ZNACZNIK}}, tutaj wtedy mamy ów:
; Parametry w wersji - znacznikowe{{dk}}
* {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
* {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
* {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
; Parametry podstawowe{{dk}}
* Parametry tej funkcji, jak w: {{LinkZobaczTeż|parametry znacznikowe}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
0rjyst1u1w51fjwkc97dxklprzeufqv
554000
553999
2026-09-02T16:17:57Z
Persino
2851
/* {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} */
554000
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
; Parametry w wersji - szablonowe{{dk}}
* Parametry szablonowe, gdy obiekt wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|SZABLON}}, wtedy one mają taką słuszność:
# {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
# {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
# {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry w wersji - znacznikowe{{dk}}
* Parametry znacznikowe, gdy obiekt: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|ZNACZNIK}}, tutaj wtedy mamy ów:
# {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
# {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
# {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
; Parametry podstawowe{{dk}}
* Parametry tej funkcji, jak w: {{LinkZobaczTeż|parametry znacznikowe}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
Gdy mamy {{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}, wtedy uruchamiamy funkcję:
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}{{Code|FuncSzablon}} dla obiektów szablonowych, czyli typu SZABLON ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
mgschmzy002n33xcszuo9ftohfvaa5q
554001
554000
2026-09-02T16:26:59Z
Persino
2851
/* Zmiana tekstu krok 1 */
554001
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
; Parametry w wersji - szablonowe{{dk}}
* Parametry szablonowe, gdy obiekt wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|SZABLON}}, wtedy one mają taką słuszność:
# {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
# {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
# {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry w wersji - znacznikowe{{dk}}
* Parametry znacznikowe, gdy obiekt: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|ZNACZNIK}}, tutaj wtedy mamy ów:
# {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
# {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
# {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnątrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
; Parametry podstawowe{{dk}}
* Parametry tej funkcji, jak w: {{LinkZobaczTeż|parametry znacznikowe}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}Funkcja: {{nobold|{{Code|FuncSzablon}}}}, dla obiektów szablonowych: {{nobold|{{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}}} ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
h64gke6dl1kf9n65w59zeyqxycglemw
554136
554001
2026-09-03T10:45:29Z
Persino
2851
/* Zmiana tekstu krok 1 */
554136
wikitext
text/x-wiki
<noinclude>{{ProstaStronaStart
| nagłówek = {{Podrozdział|{{ld2|StronicowyParser/Rozdziały}}|Dokumentacja modułów {{lpg|Lua}} w {{lpr|Lua|Scribunto}}.}}{{Autonawigacja|Pomoc:Spis treści}}
| stopka strony = {{StopkaSpisTreści}}{{Podrozdział|Koniec}}
}}</noinclude>
{{Spis treści}}
== {{Śródtytuł|p.IterTekst}}{{Code|p.IterTekst}} ==
Funkcja zwraca iterator, która jest funkcją, z zerową listą parametrów, a on zwraca napis wprowadzenia tekstu i jego tekst rozdziału wraz z innymi parametrami charakteryzujący ten rozdział. Przed uruchomieniem iteratora, gdy tekst jest zakodowaany, funkcja modyfikuje zawartość rozdziału, upraszcza na maksimum do ich zmodyfikowanej zawartości jego elementy, zostawiając jedynie zakodowane, to co wskazuje na odpowiednie linki wewnętrzne i zewnętrzne, nawet te inteligentne, w tych linkach wszystko jest zakodowane. Funkcja upraszcza kolejne linie łącząc je odpowiednio między sobą, bez linii, z którymi się nie da się tego zrobic, do tego służy: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}. Funkcja z całego zmodyfikowanego rozdziału wydziela spis treści z linkami, nawet inteligentnymi, korzystając z funkcji {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, aby dało się z niego wydzielić treściwe rozdziały i artykuły, bez tych zbędnych, aby za pomocą innych funkcji dało się to wszystko poprawnie ponumerować, bez numerowania tego, co nie potrzebne.
Ten zwracany iterator ma funkcję, czy rozważać, tylko rozdziały dodatnie, czy również ujemne i zerowe, do tego służy zmienna: {{LinkPatrz|czy_rozdzialy_analizowac}}. Ta funkcja za każdym razem uruchomienia tego zwraca inną linie charakteryzująca rozdział i zawartość nazwy rozdziału, także zwraca inną zawartość tekstu rozdziału, przynależną temu nagłówkowi, również dalsze parametry o wartościami zwracanych przez nią są zmienne określająca sam napis wprowadzenia tekstu, zmienne zwracane przez iterator są opisane w opisie poniżej. Iterator zwraca {{Code|nil}}, gdy nie znalazł dalej żadnego innego rozdziału, lub od razu też tą wartość, gdy w całym tekście nie ma żadnego jakikolwiek tego.
Oprócz iteratora funkcja w nagłówku zwraca drugi argument, jako zmodyfikowany tekst, wstępnie przygotowany do dalszej analizy, aby dało się na nim ładnie operować.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function p.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,czy_rozdzialy_analizowac,czy_dalej_rozwazac_zakodowane,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU)
...
return function()
....
return naglowek_tab_aktualnego_rozdzialu,str,poziom_aktualnego_rozdzialu,poczatek_aktualnego_rozdzialu,numeracja_aktualnego_rozdzialu,czy_rozdzial_aktualny_centrowany;
end,tekst_rozwiniety_calego_artykulu;
end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tekst_rozwiniety_calego_artykulu}} {{Patrz|tekst_rozwiniety_calego_artykulu}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}, ale nie musi być tak: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, jeśli tekst jest zakodowany, w przeciwnym wypadku nie jest, tylko ten tekst jest zawartością danej strony,
* Nazwy strony danego określonego spisu:
** {{Code|nazwa_przestrzeni}} - jak w: {{LinkPatrz|nazwa_przestrzeni|StronicowyParser/Rozdziały}}, {{Code|nazwa_przestrzeni_ksiazki}} - jak w: {{LinkPatrz|nazwa_przestrzeni_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_ksiazki}} - jak w: {{LinkPatrz|nazwa_ksiazki|StronicowyParser/Rozdziały}}, {{Code|nazwa_spisu_tresci}} - jak w: {{LinkPatrz|nazwa_spisu_tresci|StronicowyParser/Rozdziały}},
* {{Code|czy_rozdzialy_analizowac}} {{Patrz|czy_rozdzialy_analizowac}} - czy ma tylko uwzględniać rozdziały, nie tylko, dodatnie równaniowe,
* {{Code|czy_dalej_rozwazac_zakodowane}} {{Patrz|czy_dalej_rozwazac_zakodowane}} - czy tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, ma być zakodowany, a jeśli jest taki, to są robione operacje na liniach, i wydzielonany jest tekst spisu treści z całego tego tekstu,
* Tablice wynikłe z zakodowanych zmiennych:
** {{Code|tablica_analizy_obiektow_strony_dany_modul}} - jak w: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, {{Code|tablica_danych_parametrow_szablonu_strony}} - jak w: {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, {{Code|tab_nazwa_spisow_przekierowaniowych}} - jak w: {{LinkPatrz|tab_nazwa_spisow_przekierowaniowych|StronicowyParser/Rozdziały}},
* Funkcje iteratora tekstu napisu wprowadzenia tekstu i ich tekstów rozdziałów:
** {{Code|__FUNKCJA}} {{Patrz|__FUNKCJA}} - funkcja sprawdza, czy wywołanie szablonowe, czy jest normalnym szablonem, a nie instrukcją warunkową, na podstawie pełnego adresu szablonu, określa i zawraca jego zawartość,
** {{Code|__FUNKCJA2}} {{Patrz|__FUNKCJA2}} - funkcja operująca na przygotowanej zawartości napisu wprowadzenia tekstu i tekście napisu wprowadzenia tekstu (rozdziału),
** {{Code|__FUNKCJA_ANALIZA_SPISU}} {{Patrz|__FUNKCJA_ANALIZA_SPISU}} - funkcja do analizy i modyfikacji tekstu, może zwracać wartość nilową, przed samym wydzieleniem spisu treści, jeżeli pewna funkcja zwróci ściśle określoną wartość, która to właśnie powoduje, że ta funkcja wtedy nie jest uruchamiana, funkcja ta bezpośrednio jest wywoływana w tej funkcji, służy ona do wydzielenia właściwego spisu treści danego spisu treści, tak robimi, uruchamiając funkcję: {{LinkŚródtytuł|p.IterTekst}}, dla każdego takiego spisu w odpowiedni sposób pokazaną w rozdziale: {{Code|{{sr|SpisTreści|p=StronicowyParser}}}}, co jest uwidocznione w module: {{Code|{{ld2|StronicowyParser/SpisTreści}}}}.
Parametry funkcji zwracanej:
* Funkcja nie przyjmuje żadnych parametrów.
Jednoczesne parametry zwracane przez funkcję zwracaną:
* {{Code|naglowek_tab_aktualnego_rozdzialu}} {{Patrz|naglowek_tab_aktualnego_rozdzialu}} - to jest tablica numerowana dwuelementowa, którego pierwszym elementem jest nagłówek rozdziału, a druga jest całą jego linią,
* {{Code|str}} {{Patrz|str}} - tekst napisu wprowadzenia tekstu (zawartość rozdziału),
* {{Code|poziom_aktualnego_rozdzialu}} {{Patrz|poziom_aktualnego_rozdzialu}} - poziom aktualnego rozdziału,
* {{Code|poczatek_aktualnego_rozdzialu}} {{Patrz|poczatek_aktualnego_rozdzialu}} - przedrostek aktualnego rozdzialu, dotyczy list, zaczynających się na: {{Code|<nowiki>[;%*:#]</nowiki>}}, {{Code|nil}}, gdy nie ma takiego rozdziału
* {{Code|numeracja_aktualnego_rozdzialu}} {{Patrz|numeracja_aktualnego_rozdzialu}} - numeracja aktualnego rozdziału, numeracja jest na podczątku rozdziału, a właściwy rozdział dalej, gdy nie ma numeracji, wtedy numeracja jest ciągiem pustym, lub {{Code|nil}},
* {{Code|czy_rozdzial_aktualny_centrowany}} {{Patrz|czy_rozdzial_aktualny_centrowany}} - przedstawia, czy rozdział jest rozdziałem dodatnim centrowanym znacznikowym lub szablonowym.
=== Wykorzystywane tablice w {{lpg|Lua}} w {{lpr|Lua|Scribunto}} ===
Te tablice są zdefiniowane w: {{Code|{{ld2|StronicowyParser/obiekty}}}}.
==== Szablony i znaczniki, wyróżniające linie, które są rozdziałami ====
Pierwszą tablicą jest {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}} słążaca do wskazania rozdziałów centrowanych. A ich odpowiedniki w postaci znacznikowych są w: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
==== Szablony, projektów i tekstów, usuwane z tekstu ====
Szablony, które są usuwane z tekstu są zdefiniowane w {{Patrz|p.szablony_do_usuwania_z_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_do_usuwania_z_tekstu={
--- szablony książkowe umieszczane na stronie głównej podręcznika
["Kolekcja"]=true,
["TODO"]=true,
["Wersja do druku"]=true,
--- szablony typowo linkowe
["Dane tekstu"]=true,
--- szablony linkowania do innych projektow
["MediaWiki"]=true,
["Wikipedia"]=true,
["Wikipedia kat"]=true,
["Wikipedia2"]=true,
["Commons"]=true,
["Commons ilustr kat"]=true,
["Commonsall"]=true,
["Commonscat"]=true,
["Wikiatlas"]=true,
["Wikicytaty"]=true,
["Wikicytaty przysłowia"]=true,
["Inkubator"]=true,
["Meta"]=true,
["Wikinews"]=true,
["Wikinewscat"]=true,
["Wikinewsy"]=true,
["Portal Wikinews"]=true,
["Wikisłownik"]=true,
["Wikisłownik-cat"]=true,
["Wikimedia"]=true,
["Multiwmpl"]=true,
["Wikipodróże"]=true,
["Wikispecies"]=true,
["Multisource"]=true,
["Wikiźródła"]=true,
["Wikiźródła autor"]=true,
["Wikiźródła kat"]=true,
["Wikiźródła kuch kat"]=true,
["Wikiźródła krótki"]=true,
["Wikisource-lang"]=true,
};
</syntaxhighlight>
Ona jest opisana w: {{Code|{{sr|#p.szablony_do_usuwania_z_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia ona szablony projektów zdefiniowane na stronie {{s|MediaWiki}}.
Aby w końcowych rozważaniach w napisie wprowadzenia tekstu i tekście rozdziału, aby były bez nich, by analiza tekstu przebiegała bezproblemowo, by z niego dało się wykryć poszczególne rozdziały linie i w nich artykuły, a także w liniach w nierozdziałach, wykryć artykuły w nich.
==== Szablony, z których z których zostawiane są tylko zawartości ====
Z rozważanego tekstu są usuwane elementy przy pomocy tablicy: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, która jest wykorzystywana przez funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|p=StronicowyParser/Rozdziały}}}}.
==== Inne szablony usuwane z tekstu ====
Tą tablicą, opisana w: {{Code|{{sr|#p.szablony_bez_generowania_napisowego|p=StronicowyParser/obiekty}}}}, jest o definicji {{Patrz|p.szablony_bez_generowania_napisowego}}:
<syntaxhighlight lang="lua">
p.szablony_bez_generowania_napisowego={
["Status"]=true,
};
</syntaxhighlight>
Przedstawia ona treści, szablony o pewnych nazwach, które z tworzącymi ich wywołaniami są usuwane z rozważanego tekstu. Są to szablony, które nie generują napisów wprowadzenia tekstu.
Inną tablicą, która przedstawia elementy do usuwania z tekstu, czyli o szablony o jakiś nazwach, opisana w: {{Code|{{sr|#p.szablony_nie_typowo_linkowe|p=StronicowyParser/obiekty}}}}, mającą określenie {{Patrz|p.szablony_nie_typowo_linkowe}}:
<syntaxhighlight lang="lua">
p.szablony_nie_typowo_linkowe={
["Plik"]=true,
["Kategoria"]=true,
["Kategorie"]=true,
["Wolumin"]=true,
["SortWolumin"]=true,
["SortKuchWolumin"]=true,
};
</syntaxhighlight>
Są to nazwy szablonów istniejących, którego na podstawie tego można stworzyć wywołania zawarte w tekście, które należy usunąć z niego. Są to szablony, które nie generują linków do artykułów jakiegoś podręcznika.
==== Znaczniki szablonowe ====
Definicję, jakie szablony uznać za znaczniki szablonowe, jest napisane w {{Patrz|p.znaczniki_szablonowe}}:
<syntaxhighlight lang="lua">
p.znaczniki_szablonowe={
["Znacznik"]=1,
["Div"]=1,
["Code"]=1,
["Tt"]=1,
["P"]=1,
["Sub"]=1,
["Sup"]=1,
["Span"]=1,
["Bdo"]=1,
["Small"]=1,
["Big"]=1,
["Strong"]=1,
};
</syntaxhighlight>
Opisana jest w: {{Code|{{sr|#p.znaczniki_szablonowe|p=StronicowyParser/obiekty}}}}. Są to odpowiedniki znaczników {{Strong|HTML}}, one po rozwinięciu właście to tworzą. One są usuwane odpowiednio z tekstu, tzn. ich zawartości sa pozostawiane, numer tego przedstawia, numer parametru tych szablonów, wartość tabeli o kluczu równym nazwie tego szablonu to jest właśnie to.
==== Szablony generujące poziomy o dowolnym poziomie ====
Definicję szablonów generujące dowolny poziom napisu wprowadzenia tekstu jest {{Patrz|p.szablony_sztucznego_wprowadzenia_tekstu}}:
<syntaxhighlight lang="lua">
p.szablony_sztucznego_wprowadzenia_tekstu={
["HNumer"]=1,
};
</syntaxhighlight>
Opisana w: {{Code|{{sr|#p.szablony_sztucznego_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}}, przedstawia szablony, która sztucznie generuje niemożliwe poziomy napisów wprowadzenia tekstu. Zawartością tego szablonu o nuerze stojącego przy wartości elementów w tej tablicy,jest poziom dodatni o dowolnym poziomie, nie tylko {{Code|<nowiki>0 < pozim <= 6</nowiki>}}, ale też i: {{Code|<nowiki>poziom>6</nowiki>}}.
==== Magiczne derektywy ====
Z tekstu są usuwane magiczne derektywy zdefiniowane w tablicy: {{Code|{{sr|#p.magiczne_derektywy|p=StronicowyParser/obiekty}}}}, jej definicja {{Patrz|p.magiczne_derektywy}}:
<syntaxhighlight lang="lua">
p.magiczne_derektywy={
["TOC"]=true,
["NOTOC"]=true,
["NOEDITSECTION"]=true,
};
</syntaxhighlight>
==== Napisy wprowadzenia tekstu, spisu treści lub spisu rzeczy, wykrywane funkcję ====
Napisy typu: {{Code|Spis treści}} lub {{Code|Spis rzeczy}}, które są wykrywane przez funkcję są zdefiniowane w {{Patrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}:
<syntaxhighlight lang="lua">
p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu={
["spis treści"]=true,
["spis tresci"]=true,
["spis rzeczy"]=true,
};
</syntaxhighlight>
Aby elementy tej tablicy w odpowiednich rozdziałach w całości wykryć, należy użyć metatablicy: {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}. Ta tablica jest opisana w: {{Code|{{sr|#p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu|p=StronicowyParser/obiekty}}}}.
==== Artykuły nieartykularne (okładki) ====
Aby funkcja wykryła artykuły, które uznać za nieartykularne, nie za zwykłe artykuły, należy użyć wyrażeń regularnych zdefiniowanych w tablicy {{Patrz|p.artykularne_niespisowe}}:
<syntaxhighlight lang="lua">
p.artykularne_niespisowe={
[1]="^[Oo][Kk][ŁłLl][Aa][Dd][Kk][Aa]$",
--[2]="^[Ww][Ss][Tt][ĘęEe][Pp]$",
};
</syntaxhighlight>
Ta tablica jest opisana w: {{Code|{{sr|#p.artykularne_niespisowe|p=StronicowyParser/obiekty}}}}. Ona powoduje, że elementy tego typu nie będą wykrywane w spisie artykułów danego podręcznika, bo np. przedstawiają one okładki tego typu, no bo jak uznać okładki za artykuły.
=== Przykłady ===
Przykładowe użycia:
<syntaxhighlight lang="lua">
local stronicowyparser_tekst_modul=require("Module:StronicowyParser/Tekst");
local __FUNKCJA_PARAMETRY=nil;
local __FUNKCJA_ANALIZA_SPISOWA=function(tekst_artykulu,nazwa_modulu_szablonu_opisu,nazwa_strony_bez_kodow_html,szablony_magiczne,tabela_nazw)
return nil;
end;
local tekst_rozwiniety_calego_artykulu,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony=stronicowyparser_tekst_modul:RekurencyjnyZakodowanoSpreparowanyWikikodStrony(nazwa_modulu,false,nil,nil,__FUNKCJA_ANALIZA_SPISOWA,__FUNKCJA_PARAMETRY);
local __FUNKCJA=function(pelna_nazwa_szablonu,tabela_modyfikatorow)
... ---- Funkcja aktualnie nieużywana;
local szablonowe_modul=require("Module:Szablonowe");
if(not szablonowe_modul.CzyModyfikatoryZElementamiSzablonowymiNormalnymiSzablonowe(tabela_modyfikatorow))then return nil;end;
---
pelna_nazwa_szablonu=techniczne_modul.PrzekierowanieDoStrony(pelna_nazwa_szablonu) or pelna_nazwa_szablonu;
local tekst=stronicowyparser_tekst_modul.SpreparowanyWikikodStrony(nil,pelna_nazwa_szablonu,true);
return tekst;
end;
local __FUNKCJA2=function(str,pelna_nazwa_strony,tablica_analizy_obiektow_strony_dany_modul,czy_naglowek)
...
return str;
end;
local __FUNKCJA_ANALIZA_SPISU=function(tekst_rozwiniety_calego_artykulu,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony)
local stronicowyparser_analizaspisu_modul=require("Module:StronicowyParser/AnalizaSpisuRzeczy");
local tekst=stronicowyparser_analizaspisu_modul.AnalizaSpisuRzeczy(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,pelna_nazwa_spisu_tresci_szablonowa,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych);
return tekst;
end;
local iterator,tekst_rozwiniety_calego_artykulu=stronicowyparser_rozdzialy_modul.IterTekst(tekst_rozwiniety_calego_artykulu,nazwa_przestrzeni,nazwa_przestrzeni_ksiazki,nazwa_ksiazki,nazwa_spisu_tresci,true,true,tablica_analizy_obiektow_strony_dany_modul,tablica_danych_parametrow_szablonu_strony,tab_nazwa_spisow_przekierowaniowych,__FUNKCJA,__FUNKCJA2,__FUNKCJA_ANALIZA_SPISU);
---- iterator - iterator;
---- tekst_rozwiniety_calego_artykulu - tekst zakodowany maksymalnie zmodyfikowany przyszykowany do dalszej analizy;
local parsuj_rozdzialami=nil;
for rozdzial_tab,text,poziom_rozdzialu,poczatek_rozdzialu,numeracja,czy_rozdzial_centrowany in iterator do
... --- Gdy tekst ma rozdziały iterowalne;
if(not parsuj_rozdzialami)then parsuj_rozdzialami=true;end
end;
if(not parsuj_rozdzialami)then
... ---- Gdy tekst nie ma rozdziałów iterowalnych;
end;
</syntaxhighlight>
=== Opis dalszy funkcji ===
Liczymy nazwę spisu bez nazwy przestrzeni szablonowej: {{Code|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}} {{Patrz|pelna_nazwa_spisu_tresci_bez_nazwy_przestrzeni_szablonowej}}, i nazwę szablonową tej strony: {{Code|pelna_nazwa_spisu_tresci_szablonowa}} {{LinkPatrz|pelna_nazwa_spisu_tresci_szablonowa|StronicowyParser/Rozdziały}}. W tej ostatniej uwzględniamy również możliwą przestrzeń główną, w której tej ostatniej uwzględniamy sam dwukropek {{Code|:}}, lub inną.
Definiujemy funkcje: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} (usuwa odpowiednie elementy z tabeli parametrów przeanalizowanych z: {{Code|tablica_danych_parametrow_szablonu_strony}} {{LinkPatrz|tablica_danych_parametrow_szablonu_strony|StronicowyParser/Rozdziały}}, na podstawie {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}) i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}} (usuwa elementy z: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, bazy danych skonstrułowanych dzięki: {{Code|{{m|Szablonowe}}}}), oraz do nich potrzebne zmienne.
Funkcja decyduje, czy wybrać blok z sekcję: {{Code|czy_dalej_rozwazac_zakodowane}} {{LinkPatrz|czy_dalej_rozwazac_zakodowane}} - czyli czy główny tekst: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowany, czy nie - wtedy nie, gdy to wybieramy, to ta zmienna przyjmuje wartość {{Code|true}}, w innym wypadku ona odpowiada wartości odpowiadającej fałszywej.
==== Kod z sekcją: {{Code|czy_dalej_rozwazac_zakodowane}} ====
Opis funkcji według tej sekcji dotyczy, gdy zmienna: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, jest zakodowana.
===== Definicje potrzebnych funkcji do opisu działającego kodu =====
Przedstawiamy tutaj definicję lokalnych funkcji.
====== {{Śródtytuł|UsuwanieNowychLiniiZnacznikowe}}{{Code|UsuwanieNowychLiniiZnacznikowe}} ======
Funkcja służy do modyfikacji tekstu tylko ze znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', takich jak: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''': {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonów '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieNowychLiniiZnacznikowe(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest elementem tabeli bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, modułu: {{Code|{{m|Szablonowe}}}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Funkcja nie zmienia poziomu zakodowania tekstu, tzn. ona służy jedynie do {{ZobaczTeż|elementy usuwane nowe linie}} znajdowania znaczników: {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, oraz szablonów: {{Code|{{s|Br}}}} i {{Code|{{s|Hr}}}}, w nim, i zamieniania ich na jedną spację (odstęp).
Funkcja zwraca tak zmodyfikowany tekst, podany jako pierwszy parametr funkcji. Sprawdza, czy one wystąpiły przy {{Code|poziom_iteracji}} {{=}} {{Code|0}}, jeżeli występują, to ta funkcja zwraca drugi wynik w postaci wartości: {{Code|true}}, przeciwnie ta wartość jest: {{Code|nil}}.
====== {{Śródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}{{Code|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}} ======
Funkcja usuwa elementy, zagnieżdzone, linie charakteryzujące rozdziały - napisy wprowadzenia tekstu, które są znacznikami języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{ZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{ZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, zastępując je odpowiednimi ich zawartościami, pozostawiając jedną główną nową linię z szablonem lub znacznikiem, centrowania, czy znacznikiem nagłówków: {{LinkZobaczTeż|nagłówki}}, linii, którą jest on charaketruzjący się wnętrzem: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, rodzajem obiektu, dostępne obiekty to: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, i jego numerem: {{Code|kod}} {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji {{ZobaczTeż|szablon-obiekt-kod}}:
* {{Code|szablon}} - tekst do zmodyfikowania, jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, lub jego elementy bazy: {{Code|tablica_analizy_obiektow_strony_dany_modul}} {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}},
* {{Code|obiekt}} - jak w: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}},
* {{Code|kod}} - jak w: {{LinkPatrz|kod|StronicowyParser/Rozdziały}}.
Funkcja korzysta z funkcji: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}.
Te linie mogą być oznaczone szablonami: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, lub znacznikami: {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}.
Funkcja zwraca tak zmodyfikowany tekst {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, z drugim parametrem {{Code|true}}, jeżeli zagnieżdzone napisy wprowadzenia tekstu wystąpiły, przeciwnie jest zwracany ten sam tekst, bez modyfikacji, co został przyjęty jako pierwszy parametr funkcji, z drugim parametrem {{Code|nil}}.
====== {{Śródtytuł|Modyfikacja}}{{Code|Modyfikacja}} ======
Funkcja usuwa zagnieżdzone napisy wprowadzenia tekstu nierównaniowe: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} przy pomocy funkcji w pierwszej kolejności: {{LinkŚródtytuł|UsuwanieZagniezdzonychNapisowWprowadzeniaTekstu}}, w drugiej: nowe linie, nawet kresek, czyli: {{LinkZobaczTeż|elementy usuwane nowe linie}}, dzięki: {{LinkŚródtytuł|UsuwanieNowychLiniiZnacznikowe}}, następnie znaki nowych linii języka: {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, powstałe przez znak nowej linii: {{Code|<nowiki>\n</nowiki>}} {{Patrz|nowa linia}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local Modyfikacja=function(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jakikolwiek parametry, jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja zwraca tekst zmodyfikowany: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}} - pierwszy parametr funkcji, z drugą wartością {{Code|true}}, bo nastąpiła jego zmiana wnętrza, a jeżeli nic się nie zmieniło, to druga wartość jest {{Code|nil}}, a pierwsza wartość, to niezmodyfikowany element, ten pierwszy argument tej funkcji.
====== {{Śródtytuł|UsuwanieZnacznikowe}}{{Code|UsuwanieZnacznikowe}} ======
Główny element: {{Code|szablon}} {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, który jest pierwszym argumentem tej funkcji, który charakteryzuje się, tym, że jest znacznikiem języka: '''{{lpg|HTML}}''' mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''' wraz zawartością i atrybutami, takich jak {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}}: znaczniki '''centrowania''': {{Tag|center}}, i '''nagłówków''' {{LinkZobaczTeż|nagłówki}}: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, jak i szablonami '''centrowania''': {{s|Ce}}, {{s|Centruj}} i {{s|Center}}.
Funkcja korzysta z tabeli: {{Code|{{sr|#p.szablony_wprowadzenia_napisu_spisu_rzeczy|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, dla napisów wprowadzenia tekstu szablonowych, i {{Code|{{sr|#p.znaczniki_wprowadzenia_tekstu|p=StronicowyParser/obiekty}}}} {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, dla napisów wprowadzenia tekstu znacznikowych. Te elementy są podane w: {{LinkZobaczTeż|elementy usuwane - szablony i znaczniki, napisów wprowadzenia tekstu}} - szablony i znaczniki centrowania, i {{LinkZobaczTeż|nagłówki}} - znaczniki nagłówków.
Funkcja sprawdza, czy to jest napis wprowadzenia tekstu szablonowy typu, jedynie w dwóch sprawdzonych zakresach, tzn.: {{Code|SZABLON}}, czy {{Code|ZNACZNIK}}. W obu tych rozgałęzieniach funkcji, dla tych elementów z tych tabel, jest uruchamiana procedura modyfikująca: {{LinkŚródtytuł|Modyfikacja}}, która drugim parametrem zawiadamia, czy coś się zmieniło.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function UsuwanieZnacznikowe(szablon,obiekt,kod,parametr1,parametr2,parametr3)...end;
</syntaxhighlight>
Parametry funkcji {{Nobold|{{ZobaczTeż|parametry znacznikowe}}}}:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}, dla parametrów bazy: {{Code|{{m|Szablonowe}}}}.
; Parametry w wersji - szablonowe{{dk}}
* Parametry szablonowe, gdy obiekt wskazany przez zmienną: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|SZABLON}}, wtedy one mają taką słuszność:
# {{Code|parametr1}} {{Patrz|parametr1-szablonowe}} - to nic innego jak: {{Code|tabela_parametrow_szablonu}} {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
# {{Code|parametr2}} {{Patrz|parametr2-szablonowe}} - to nic innego jak: {{Code|nazwa_szablonu}} {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
# {{Code|parametr3}} {{Patrz|parametr3-szablonowe}} - to nic innego jak: {{Code|tabela_modyfikatorow}} {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
; Parametry w wersji - znacznikowe{{dk}}
* Parametry znacznikowe, gdy obiekt: {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest typu: {{Code|ZNACZNIK}}, tutaj wtedy mamy ów:
# {{Code|parametr1}} {{Patrz|parametr1-znacznikowe}} - to nic innego jak: {{Code|nazwa}} {{LinkPatrz|nazwa|StronicowyParser/Rozdziały}}, czyli jak nazwa znacznika,
# {{Code|parametr2}} {{Patrz|parametr2-znacznikowe}} - to nic innego jak: {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały}}, czyli zawartość znacznika,
# {{Code|parametr3}} {{Patrz|parametr3-znacznikowe}} - to nic innego jak: {{Code|atrybuty}} {{LinkPatrz|atrybuty|StronicowyParser/Rozdziały}}, czyli atrybuty znacznika.
Jeżeli nic się nie zmieniło to funkcja zwraca wartość: {{Code|nil,true}}, a jeżeli przeciwnie to wartość zmienioną, ewentualnie ze zmodyfikowaną bazą {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} (ale zwracane bez niej, a wartość {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, która się wtedy nie zmieniła, bo baza jest teraz inna, jedynie jest brana do obliczeń, aby określić element pierwszy zrzucony przez tą procedurę), z drugą wartością {{Code|true}}.
====== {{Śródtytuł|PrzetwarzanieZnacznikowe}}{{Code|PrzetwarzanieZnacznikowe}} ======
Funkcja do przetwarzania ciągu (modyfikowanej treści), do odpowiedniego ustawiania linii. Funkcja służy do tego, że jeżeli napotkała znaki listy na początku nowej linii, to usuwana jest jego magiczność, aby to nie znaczyło, tyle co pozycje listy, bo ten element może się znaleźć bezpośrednio lewego końca znacznika - ten znacznik boże być obiektem typu {{Code|ZNACZNIK}} lub {{Code|SZABLON}}, czyli wtedy jest znacznikiem szablonowym, które te elementy tyle znaczą co nic, ale po zastąpieniu tego jego zawartością, one nabierają magiczności, którą z racji tego trzeba usunąć magię tego, lub element znajduje się na początku komórki tabeli, wtedy ten sam problem, czyli wtedy po usunięciu tabeli, zdobywa to magiczność, bo w znaczniku lub w komórce nie były one magiczne, robiąc pewne operacje. Funkcja zamienia wszystkie kody '''{{lpg|HTML}}''' spacji, na jedną odstępową spację, by udało się w pełni sprawdzenie {{LinkPatrz|pozycje listy}}, bo tam na początku występuje dowolna liczba odstępów: {{Code|<nowiki>%s</nowiki>}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local PrzetwarzanieZnacznikowe=function(komorka,nie_trimowanie)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|komorka}} - przetwarzana komórka - linia,
* {{Code|nie_trimowanie}} - czy jest włączona możliwość nie trimowania komórki, zaprzeczenie tego,czy ma trimować.
Funkcja znaki odstępu dyktowane kodami: {{Code|{{Nowiki| }}}}, {{Code|{{Nowiki| }}}} i {{Code|{{Nowiki| }}}}, są zastępowane na pojedynczą spację, te spacje mogą być pokolei dla każdego kodu {{Strong|HTML}}. To już zamienione przypisuje pod starą wartością {{Code|komorka_stara}}, a ta nowa {{Code|komorka}}, ta zmieniona, jest trimowana, jeżeli ta funkcja w tej funkcji jest włączona poprzez zaprzeczenie drugiego parametru tej funkcji, którego tutaj powinna przyjmować nie wartość prawdziwą, czyli czy ma trimować.
Jeżeli wyrażenie pasuje do starej wartości: {{Code|<nowiki>^%s*[#%*:;>]</nowiki>}} {{Patrz|pozycje listy}}, czyli są to w nawiasie kwadratowym elementy pozycji listy i nie tylko, to na poczatek tego nowego jest dodawany pojedynczy odstęp.
Jeżeli trimowanie jest włączone, to na poczatek są dodawane dwa znaki nowej lini: {{Code|<nowiki>\n</nowiki>}}, a na końcu ta jedna, i to jest zwracane - zmodyfikowana waartość {{Code|komorka}}, w przeciwnym razie zwracana jest wartość równa otrzymanej nowej wartości tego czegoś, czyli też {{Code|komorka}}.
====== {{Śródtytuł|ZamienNaKody}}{{Code|ZamienNaKody}} ======
Funkcja zamieniająca odpowiednie znaki na znaki kodu {{Strong|HTML}}. Gdy pozycje listy lub element rozdziału dodatniego równaniowego jest na początku elementu, tzn. to: {{LinkPatrz|pozycje magiczne}}, gdy znajduje się w znaczniku normalnym typu {{Code|ZNACZNIK}} lub szablonowym {{Code|SZABLON}} (te znaczniki są w kategorii: {{lk2|Szablony znaczników}}), na początku jego, to nie ma żadnej magiczności, po zastąpieniu tego jego zawartością, to to nabiera nakiego nasycenia, aby nie było to takie, to te znaki zastępujemy kodami '''{{lpg|HTML}}'''. Podobnie jest ze znakiem {{Code|{{=}}}}, według: {{LinkPatrz|rozdziały magiczne}} na końcu tego elementu w przypadku rozdziału równaniowego dodatniego, wtedy w tej linii, nie ma już takiego rozpoznanego rozdziału wykrywanego przez '''{{ld|StronicowyParser|Stronicowy parser}}'''.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function ZamienNaKody(zawartosc,czy_szablon)...end;
</syntaxhighlight>
* {{Code|zawartosc}} - zawartość modyfikowana, działa podobnie jak w: {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}},
* {{Code|czy_szablon}} {{Patrz|czy_szablon}} - czy zawartość modyfikowana jest od szablonu.
Funkcja sprawdza, czy pierwszy znak linii jest nową linią, jeśli nie, to znaki przechwytywane z: {{Code|<nowiki>^([=%*#:;])</nowiki>}} {{Patrz|pozycje magiczne}}, są zamieniane na kody {{Strong|HTML}}.
Funkcja sprawdza, czy ostatni znak linii jest nową linią, jeśli nie, to znaki przechwytywane z pierwszego ciągu z: {{Code|<nowiki>([=])([^%S\n]*)$</nowiki>}} {{Patrz|rozdziały magiczne}}, są zamieniane tak jak poprzednio.
Funkcja w ten sposób zwraca zmodyfikowaną, jeśli były elementy nabierające magicznego kontrastu, lub nie, jeśli nie, zawartość.
====== {{Śródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}{{Code|LiniaRozdzialyDodatnieOrazUjemne}} ======
Funkcja modyfikująca poszczególne linie według odpowiedniego schematu, czyli na podstawie odpowiedniego wzoru {{LinkPatrz|wzor}}, i sprawdza odpowiednio, czy tą linią jest rozdział dodatni równaniowy {{LinkPatrz|czy_rozdział_dodatni}}. Funkcje rozddziały dodatnie równaniowe (typu, że po obu stronach linii znajdują się znaki {{Code|{{=}}}}, a w wewnątrz tekst) i te będące znakami listy (przypominające rozdziały ujemne): rozpoczynające się na: {{Code|<nowiki>[%*#;:]</nowiki>}}, modyfikują je, aby nie było w nim innych rozdziałów dodatnich, ani ujemnych, rozdziałów centrowanych szzablonowych: {{s|Ce}}, {{s|Centruj}} i {{s|Center}}, według: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, oraz znacznikowych centrowania: {{Code|center}}, i znaczników nagłówków: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, według: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, jak i znaczników nagłówków szablonowych jak: {{s|HNumer}}, a w nim jest dowolna liczba równa się po lewej i po prawej stronie jego zawartości, co symbolizuje rozdział dodatni równaniowy, chociaż, nie do końca nim jest, zastąpując je ich zawartościami, i zastępując wszystkie znaczniki nowych linii {{Tag|br}} i kresek {{Tag|hr}}, czy szablony kolejno: {{s|Br}} i {{s|Hr}}, wtedy w głównym rozdziale dodatnm, czy przypominającym ujemnym, tego już nie ma, i mamy czyste te, które pisze się dokładnie jedną linią, a nie wieloma. Aby Właśnie do tego ta funkcja jest.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function LiniaRozdzialyDodatnieOrazUjemne(wzor,czy_dodatni_rozdzial)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wzór}} {{Patrz|wzor}} - wzór przetwarzający linię, możliwe dostępne są dwa wzory: {{Code|<nowiki>^(=[^\n]*[^%s=][^\n]*=)[^%S\n]*$</nowiki>}} (symbolizuje rozdział dodatni równaniowy) i {{Code|<nowiki>^([%*#;:]+[^\n]*)$</nowiki>}} (symbolizuje rozdziały ujemne, napisane za pomocą pozycji listy).
* {{Code|czy_rozdział_dodatni}} {{Patrz|czy_rozdział_dodatni}} - czy linia reprezentuje rozdział dodatni równaniowy.
Funkcja wydziela poszczególne linie wewnętrz siebie, i za pomocą pewnej funkcji wkładanej do niego jako drugi parametr, robi operacje na nich. Tą funkcją jest: {{Code|{{sr|#p.ZamianaZnakowaLinii|p=Szeregi}}}}.
Dla lini pasujących do wzoru {{LinkPatrz|wzor}}, to linie są kompletowane, używając funkcji: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}} (funkcja wykorzystuje procedury: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}}, i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}), a w nim dla elementu: {{Code|SZABLON}} i {{Code|ZNACZNIK}}, jest robione, co w nagłówku powiedziane jest, a dla znaczników mechanizmu '''{{NS|k=mw|w=tak|l=tak}}''', obiektów {{Code|obiekt}} {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}} równym: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|NOWIKI}}, są specjalne znaki znacznikaL {{Tag|nowiki}}, są zamieniane na kody '''{{lpg|HTML}}''', dla znaków: {{Code|<nowiki>[%!{}|=<>%[%]]</nowiki>}}, na podstawie wywołanej tam funkcji: {{Code|{{sr|#p.ZnakiSpecjalneTaguNowiki|p=Html}}}}, co później w ostatecznym tym elemencie znak nowej linii: {{Code|<nowiki>\n</nowiki>}}, jest zastąpiony jedną spacją. A gdy jednak te znaczniki nie mają zawartości, to są zastępowane ciagiem pustym.
===== Dalszy opis =====
Przed uruchomieniem głównego iteratora zwracanej przez tą funkcję, ona przez nią musi przejść przez te kroki, aby wyedytować odpowiednio tekst {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
====== Zmiana tekstu krok 1 ======
{{Tab}}Uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|p=Szablonowe}}}}, która służy do kodowania szablonów referencji: {{s|R}}, {{s|RN}} i {{s|RNota}}, {{s|U}}, {{s|UN}} i {{s|UNota}}, {{s|O}} i {{s|Ref}} oraz {{s|Refn}}, znaczniki '''mechanizmu {{NS|k=mw|w=tak|l=tak}}''': {{Tag|ref}}, a także dopisująca linkom zewnętrznym nienazwanym ich numerkowe nazwy, by napisać ich numerki uruchomień, aby się zgadzała ich kolejność, a te elementy za to referencji są zamieniane w odpowiednie kody {{Strong|HTML}}, w innych przypadkach uruchamia się funkcja: {{Code|__FUNKCJA_INNE_OPERACJE}} {{Patrz|__FUNKCJA_INNE_OPERACJE}} (która robi inne operacje, które wykorzystamy do definicji funkcji tutaj, która coś robi), która jest zdefiniowana na zewnętrz tej funkcji. Funkcja wykorzystuje też: {{Code|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_PARAMETROWE|StronicowyParser/Rozdziały}} i {{Code|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE}} {{LinkPatrz|__FUNKCJA_OPERACJE_USUWANIE_BAZOWE|StronicowyParser/Rozdziały}}, zdefiniowane w opisywanym module.
{{Tab}}Funkcja ta doprowadza, za pomocą funkcji: {{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}} - pierwsza funkcja w niej, do najprostrzej postaci wikitekst zakodowany: {{Code|tekst_rozwiniety_calego_artykulu}} {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, aby w tekście były tylko linki szablonowe, nawet iteligentne, bądź spisowe, czy typu linki wewnętrzne {{Code|LINKW}}, a nawet zewnętrzne {{Code|LINKZ}}: i rozdziały niezależnie jak są reprezentowane, czy znacznikowo, czy szablonowo, i niektóre inne, aby one były w najprostrzej postaci, aby nie było rozdziałów zagnieżdżonych jeden w drugim, szablony typu stucznego reprezentowania rozdziałów dodatnich równaniowych, są zastępowane ich zawartościami. W rozdziałach szablonowych mogą być linki, niezależnie jakie.
{{HNumer|1=
======= Opis funkcji {{nobold|{{Code|__FUNKCJA_INNE_OPERACJE}} {{LinkPatrz|__FUNKCJA_INNE_OPERACJE}}}}, a w nim jest, jako pierwszy argument modyfikowany tekst wnętrzna elementu innego niż przypadek szablonów i znaczników referencji - nazwane i nienazwane =======
}}
Funkcja się uruchamia, wtedy kiedy mamy do czynienia z szablonami innymi niż referencje nazwane i nienazwane, podobnie w przypadku znaczników innych niż referencje. Ona też działa w pozostałych przypadkach.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
function(szablon,obiekt,kod,parametr1,parametr2,parametr3,tekst)...end;
</syntaxhighlight>
Parametry funkcji:
; Parametry podstawowe{{dk}}
* Parametry tej funkcji, jak w: {{LinkZobaczTeż|parametry znacznikowe}}.
; Inne parametry{{dk}}
* {{Code|tekst}} - jak w: {{LinkPatrz|tekst|StronicowyParser/Rozdziały}}.
{{HNumer|1=
======== {{Śródtytuł|FuncSzablon}}Funkcja: {{nobold|{{Code|FuncSzablon}}}}, dla obiektów szablonowych: {{nobold|{{Code|obiekt}} {{Code|{{=}}}} {{Code|SZABLON}}}} ========
}}
Funkcja zastępuje pewne elementy pewnym wyliczonym łańcuchem znaków, lub zwraca wartość {{Code|nil}}.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local FuncSzablon=function(tabela_parametrow_szablonu,nazwa_szablonu,tabela_modyfikatorow)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|tabela_parametrow_szablonu}} - jak w: {{LinkPatrz|tabela_parametrow_szablonu|StronicowyParser/Rozdziały}},
* {{Code|nazwa_szablonu}} - jak w: {{LinkPatrz|nazwa_szablonu|StronicowyParser/Rozdziały}},
* {{Code|tabela_modyfikatorow}} - jak w: {{LinkPatrz|tabela_modyfikatorow|StronicowyParser/Rozdziały}}.
{{HNumer|1=
========= Szablony sztucznego wprowadzenia tekstu =========
}}
Sprawdzamy, czy to jest jeden z szablonów z tabeli o nazwach kluczy z: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, na podstawie, której sprawdzamy, czy istnieje element tekstu, który jest bardzo ważny w analizie tych szablonów. A jeżeli ten parametr istnieje w zestawie parametrów, wtedy ustawiamy zmienną modykacji szablonu: {{Code|czy_modyfikacja}}, na wartość {{Code|false}}, aby było wiadomo, że modyfikacji w szablonie nie dokonano, jeżeli w nim nie znaleziono znaczników. Co potem uruchamiamy funkcję kompletowania tekstu wikikodu analizowanego szablonu: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekstu|p=Szablonowe}}}}, by wnętrze znacznika {{Tag|div}} zastąpić jej zawartością, wtedy i tylko wtedy, gdy funkcja: {{Code|{{sr|#p.KodZnacznikaWeNapisieWprowadzeniaTekstuDodatniegoAlboUjemnego|b=tak}}}}, na podstawie analizy parametru: {{Code|tekst}}, zwróci wartość {{Code|true}}, a wtedy się nie dzieje, gdy w zawartości jest znak nowej linii, a przeciwnie w niej są rozdziały dodatnie, czy ujemne, wtedy na ten parametr są uruchamiane pewne funkcje, anulujące właściwości tych rozdziałów, i w takim razie jest ustawiany ten parametr modyfikacji na wartość prawdziwą, i wtedy kod tego szablonu jest zastąpiony odpowiednio zmodyfikowaną zawartością tego szablonu.
Po wyjściu z funkcji kompletowania jest sprawdzana zmienna modyfikacji: {{Code|czy_modyfikacja}}, czy przybiera wartość prawdziwą, a jeżeli tak, to zwracana jest wartość z tej funkcji na zewnątrz opisywanej.
{{HNumer|1=
========= {{Śródtytuł|AnalizaSzablonu}}{{Code|AnalizaSzablonu}} =========
}}
Uruchamiamy funkcję: {{Code|{{sr|#p.ObiektySzablonoweFormatowaniaTekstu|b=tak}}}}, używając tabeli: {{LinkPatrz|p.szablony_dozwolone_z_elementami_spisu_rzeczy_stron_woluminu|StronicowyParser/Rozdziały/Tom III}}, do analizy szablonu podanej w parametrach szablonu, aby go zastąpić jego odpowiednią zawartością, a jeżeli ona zwróci jakiś nienilowy wynik, to ta funkcja przybiera tą wartość w postaci zwracanej, w innym wypadku jest sprawdzane, czy nazwa szablonu pasuje do jednych do kluczu z tabel: {{LinkPatrz|p.szablony_do_usuwania_z_tekstu}}, {{LinkPatrz|p.szablony_bez_generowania_napisowego}} i {{LinkPatrz|p.szablony_nie_typowo_linkowe}}. Jeżeli pasuje, to funkcja zwraca ciąg pusty, przeciwnie wartość {{Code|nil}}.
{{HNumer|1=
========= Parametry funkcji {{LinkŚródtytuł|AnalizaSzablonu}} =========
}}
Funkcja analizująca szablon pod pewnymi warunkami zamieniające pewne zawartości wywołań szablonów na wartości puste lub nie zwracające żadnej wartości.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function AnalizaSzablonu(szablon)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|szablon}} - jak w: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}.
Gdy funkcja {{LinkŚródtytuł|AnalizaSzablonu}}, zwróci wartość odpowiadających łańcuchowi znaków, wtedy opisywana funkcja nadrzędnna zwraca wartość pustą, to wtedy funkcja: {{LinkŚródtytuł|FuncSzablon}}, ma zwracaną wartość równą tej wartości, a jeżeli nie ma jej, to ona idzie dalej.
{{HNumer|1=
========= Modyfikacja napisów wprowadzenia tekstu szablonowych =========
}}
Uruchamiana jest funkcja {{LinkŚródtytuł|UsuwanieZnacznikowe}}, która zwraca dwie wartości {{Code|szablon}} i {{Code|czy_center}}.
{{HNumer|1=
========= Szablony generowania nagłówków - generowanie zawartości na podstawie pewnych wniosków =========
}}
{{Tab}}Jeżeli pierwszy parametr tej funkcji zwróci wartość nie {{Code|nil}}, wtedy wiadomo, że zawartość szablonu się zmieniła, wtedy sprawdzamy, czy wywołanie szablonowe, jest jednych ze znaczników: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli tak, to liczy jego zawartość, a jeśli ona istnieje, wtedy sprawdzamy, czy w niej jest rozdział dodatni, czy ujemny, a jeżeli jest, to funkcja zwraca tą zawartość z tabelą parametrów szablonu.
{{HNumer|1=
========== Aktualizacja bazy danych kodowania '''szablonowego''' zakodowanego wikikodu ==========
}}
Po wyjściu z tej funkcji jest sprawdzane, czy funkcja zwróci wartość odpowiadająca prawdziwej, jeżeli tak, to ona zwróci ten wynik, jeżeli nie, to aktualizowana jest pozycja z: {{Code|szablon}} {{Code|{{=}}}} {{Code|szablon}}, według:
<syntaxhighlight lang="lua">
tablica_analizy_obiektow_strony_dany_modul[obiekt][kod]=szablon;
</syntaxhighlight>
A sama funkcja {{LinkŚródtytuł|FuncSzablon}} zakańcza się z wartością {{Code|nil}}.
{{HNumer|1=
========= Szablony generowania nagłówków - bez modyfikacji szablonów napisu wprowadzenia tekstu =========
}}
A gdy {{Code|szablon}} odpowiada wartości fałszywej, a {{Code|czy_center}} prawdziwej, wtedy szablon nie został zmodyfikowany, w takim razie sprawdzamy, czy nazwa szablonu pasuje do tej samej tabeli, co poprzednio dla prawdziwego {{Code|szablon}}, ale tutaj jest fałszywe, wtedy robimy podobne operacje, ale tym razem bez tabeli parametrów.
{{HNumer|1=
========= Szablony znaczników odpowiadające właściwym znacznikom '''HTML''' innym niż centrowania i nagłówków =========
}}
A gdy {{Code|szablon}} i {{Code|czy_center}} są równe odpowiadającej wartości fałszywej, wtedy sprawdzamy, czy szablon jest znacznikiem szablonowym z tabeli o pewnych kluczach: {{LinkPatrz|p.znaczniki_szablonowe}}. A jeżeli ma parametr z zawartością, to go przekształcamy szablonem {{LinkŚródtytuł|ZamienNaKody}}, by usunąc magiczność rozdziałów dpdatnich i ujemnych,jeżeli on znajduje się na samym poczatku, czy końcu zawartości.
Jeżeli funkcja jest tak zdfiniownana, tzn.: {{LinkŚródtytuł|FuncSzablon}}, jeżeli ma wynik odpowiadający prawdziwej wartości, wtedy jest zwracane {{Code|wynik,nil,true}} - co tutaj odpowiada zastępowaniom wartości, przeciwnie {{Code|nil,true}}, co tutaj odpowiada nierozwijaniu tej wartości.
{{HNumer|1=
======== Dalszy opis funkcji - obiekty nieszablonowe, czyli typu ZNACZNIK i inne ========
}}
{{Tab}}Dla {{Code|obiekt}} {{Code|{{=}}}} {{Code|ZNACZNIK}}, gdy nazwa znacznika nie jest {{Tag|center}} lub znacznikem wprowadzenia tekstu z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wtedy gdy jest nierówny: {{Tag|ref}}, {{Tag|br|pojedynczy}} i {{Tag|hr|pojedynczy}}, zatem definiujemy funkcją {{Code|fun}}, która zwracamy w postaci parametrów, do funkcji jako w zestawie argumentów zrzuconych: {{Code|fun,nil,true}}.
{{HNumer|1=
========= Znaczniki inne niż {{Tag|div}} =========
}}
Funkcja {{Code|fun}} ma definicję, która nie przyjmuje żadnych parametrów. W tej funkcji, gdy znacznik nie jest równy {{Tag|div}}, wtedy uruchamiamy funkcję: {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, a potem na jej wyniku {{LinkŚródtytuł|ZamienNaKody}}, a jeżeli zawartość nie istnieje, to ona zwróci wynik równy ciągowi pustemu.
{{HNumer|1=
========= Znaczniki warstw {{Tag|div}} =========
}}
A gdy jest jednak tym znacznikiem, to wtedy używamy funkcji dla parametru {{Code|tekst}}, czyli dla elementu wywołania szablonowego, gdy nie ma w nim rozdziałów dodatnich, czy ujemnych, czy są znaki nowej linii, wtedy przetwarzamy jego wynik, używając funkcji zastępowania {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, przetwarzając i modyfikując odpowiednio niepustą i istniejącą jego zawartość, co następnie go zwracając. Dla innej jego zawartości jest zwracany ciag pusty.
{{HNumer|1=
========= Inne znaczniki niż rozważane wcześniej jako podstawa =========
}}
{{Tab}}Gdy znacznik nie jest tym, co myślimy, wtedy jest sprawdzana zawartość, czy istnieją w nim rozdziały dodatnie lub ujemne, to zwracany jest wynik taki symbolizujący według dokumentacji zastąpienie znacznika jego zawartością.
{{HNumer|1=
========= Znaczniki zostały zmodyfikowane przez funkcję obrabające znaczniki do jednej linii =========
}}
{{Tab}}Jeżeli funkcja nie przeszła dalszych etapów, to sprawdzany jest wynik funkcją {{LinkŚródtytuł|UsuwanieZnacznikowe}}, do modsyfikacji szablonowej i znacznikowej, jeżeli ma wartość równą odpowiadającej prawdziwej, wtedy w tabeli bazy kodów {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}} dla tego obiektu i kodu jest naprawiana jego treść według tego wyniku uzyskanego z tej ostatniej funkcji.
{{Tab}}Dalej rzucany jest wynik nierozwijania, jeśli funkcja doszła do tego etapu.
{{HNumer|1=
======== Inne znaczniki specjalne mechanizmu MediaWiki oraz linki zewnętrzne i wewnętrzne ========
}}
Gdy obiekt jest równy {{Code|INNEPRE}} i zawartość składa się jego z samych odstępów, wtedy on jest zastępowany ciągiem pustym. Przeciwnie jest zrzucany wynik nierozwijania tego elementu.
{{HNumer|1=
========= Obiekty linków zewnętrznych i wewnętrznych =========
}}
Gdy mamy obiekt równy: {{Code|LINKW}} lub {{Code|LINKZ}}, wtedy uruchamiamy funkcję: {{Code|{{sr|#p.KodowanieNiezakodowanychNormKodowychReferencjiTekstu|b=tak}}}}, opisaną wcześniej, w nim znaczniki są zamieniane na ich zawartość, a jeżeli w nim tego nie ma, to nic nie jest robione.
Gdy dało się wtedy zaktualizować zmienną: {{LinkPatrz|szablon|StronicowyParser/Rozdziały}}, to wtedy zmieniamy zawartość dla tego obiektu i kodu w tabeli bazy kodowania: {{LinkPatrz|tablica_analizy_obiektow_strony_dany_modul|StronicowyParser/Rozdziały}}, na tą zawartość.
Sprawdzamy, czy ten link symbolizuje element spisu, którą sprawdzamy według funkcji: {{Code|{{sr|#p.CzyElementSpisuRzeczy|p=StronicowyParser/Potrzebne}}}}, a jeżeli nie, to funkcja zwraca wartość pustą, którą jest zastępowany taki link.
{{HNumer|1=
======== Wikitabele jako obiekty kodowania szablonowego, czyli elementy typu WIKITABELA ========
}}
Gdy obiekt jest o wartości {{Code|WIKITABELA}}, to wtedy wykorzystujemy zestaw funkcji: {{LzLua|mw.ustring.gsub}} i {{LinkŚródtytuł|PrzetwarzanieZnacznikowe}}, aby przetworzyć tekst z tabelką, do zwykłych odnośników z linkami z wikitabeli, na przykład. Na samym końcu funkcja zwraca wynik do zastąpienia takiej wikitabeli pewnym ciągiem w odpowiedni udokomentowany sposób.
====== Zmiana tekstu krok 2 ======
Uruchamiana jest dwa razy funkcja: {{LinkŚródtytuł|LiniaRozdzialyDodatnieOrazUjemne}}, raz dla rozdziału dodatniego równaniowego, a raz następnie dla pozycji listy w mechanizmie '''MediaWiki''', ta funkcja działa dla każdej linii w tekście: {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}. Funkcja upraszcza zawartość tych linii (rozdziałów) do najprostrzej postaci, by w nim bie byłó znaczników nagłówków, a nawet nagłówków przygotowanych z szablonów centrowania szablonowego lub znacznikowego. Znaczniki nowej linii i kreski poziomej, czy znaki nowej linii, są zastępowane spacją.
Zmaczniki {{Code|PRE}} w tych rozdziałach są zastępowane jego zawartością, odpowiednio modyfikując znaki specjcalne. Podobnie jest z elementami {{Code|ŹRÓDŁO}} i {{Code|NOWIKI}}. W tych dwóch pierwszych obiekrach. Znak nowej linii jest zastępowany wtedy spacją, jeśli on znajduje się w rozdziale dodatnim.
====== Zmiana tekstu krok 3 ======
Dla obiektu szablonowego typu {{Code|SZABLON}}, a w nim dla szablonów, napisu wprowadzenia tekstu, których ich nazwy pasują do: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, to dla obu stron ich kodów wstawiana jest podwójna nowa linia, a szablony o nazwach z tabeli: {{LinkPatrz|p.szablony_sztucznego_wprowadzenia_tekstu}}, których wywołania są zamieniane na znacznik napisu wprowadzenia tekstu typu: {{Tag|h1}}, {{Tag|h2}}, {{Tag|h3}}, {{Tag|h4}}, {{Tag|h5}} i {{Tag|h6}}, w których po obu stronach wstawiana jest podwójna nowa linia.
Dla obiektu {{Code|ZNACZNIK}}, a w nim dla znacznika: {{Tag|center}}, lub dla {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, wstawiane jest, po obu stronach ich kodów, podwójna nowa linia.
Dla obiektu {{Code|INNEPRE}}, dla jego kodu, po obu jego stron, wstawiana jest pojedyncza nowa linia.
A nareście dla obiektow: {{Code|PRE}}, {{Code|ŹRÓDŁO}}, {{Code|GALERIA}}, {{Code|MAPAOBRAZU}} i {{Code|PUDEŁKOWEJŚCIA}}, w przypadku ich kodów, wstawiane jest po obu ich stronach podwójna nowa linia.
==== Kod wspólny przed integracją linii i wyodrębnieniem spisu treści ====
Z {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} są usuwane komentarze typu według wzoru w {{Lpg|Lua}} w {{lpr|Lua|Scribunto}} taki: {{Code|<nowiki><!%-%-.-%-%-></nowiki>}}, a także magiczne derektywy według {{LinkPatrz|p.magiczne_derektywy}}.
A także po nowych liniach kreskowych wstawiana jest nowa linia wraz ze spacją po nich.
==== Integracja linii i wyodrębnienie spisu treści dla treści zakodowanych ====
Linie są integrowane według: {{Code|{{sr|#p.IntegrowanieLiniiTekstuWRamachJegoNapisuWprowadzenia|b=tak}}}}, a później wydzielany jest odpowiedni spis treści z tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}} według funkcji podanej w nagłówku, ale też w funkcji w tabeli transportu, na podstawie użycia funkcji: {{Code|__FUNKCJA_ANALIZA_SPISU}} {{LinkPatrz|__FUNKCJA_ANALIZA_SPISU}}, jeżeli została podana.
==== Kod dalszy bez wybranej sekcji: {{Code|czy_dalej_rozwazac_zakodowane}} (dla każdego rodzaju treści, tzn. zakodowanych i niezakodowanych) ====
Liczymy iterator {{Code|iter_main}} {{Patrz|iter_main}} z generatora: {{Code|{{sr|#p.IteratorLiniiTekstu|p=Szeregi}}}}, na możliwym zmodyfikowanym tekście {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}.
Dla tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, a właściwie dla ich kopii, jest przyłączana metatabela typu {{Code|{{sr|#p.metatablica_dla_elementowych_miar_tablicy_wedle_niewielkich_liter|p=Parametry}}}}.
Zmienna: {{Code|czy_w_spisie_tresci}} {{Patrz|czy_w_spisie_tresci}}, jest inicjowana wartością {{Code|true/nil}} na podstawie {{LinkPatrz|czy_rozdzialy_analizowac}}, zatem:
<syntaxhighlight lang="lua">
local czy_w_spisie_tresci=((not czy_rozdzialy_analizowac)and true or nil);
</syntaxhighlight>
A także jest uruchamiany sam parser nowych linii {{Code|parser}} {{Patrz|parser}}, który analizuje linie bez linii z rozdziałami dodatnimi równaniowych, którego funkcja inicjująca jest: {{Code|{{sr|#p.ParserPodawaniaNapisuWprowadzeniaTekstu|b=tak}}}}.
Dalej są definicje funkcji dalsze, a jeszcze dalej jest uruchamiana funkcja iteratora funkcji: {{Code|{{sr|#p.IterTekst|b=tak}}}}.
==== Kod wspólny ====
===== {{Śródtytuł|Wystepowanie}}{{Code|Wystepowanie}} =====
W niej są zdefiniowane funkcje, których opisy ich definicji są podane poniżej. Ona też posiada dalszy kod, których opis jest pod nimi.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Wystepowanie(linia,funkcja1,funkcja2)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|funkcja1}} {{Patrz|funkcja1}} i {{Code|funkcja2}} {{Patrz|funkcja2}} - funkcja pierwsza, gdy: {{Code|tak}} {{Patrz|tak}}, jest prawdą, a druga fałszem.
Wartość: {{Code|czy_znaleziono_okladka}} {{Patrz|czy_znaleziono_okladka}}, przyjmuje wartość {{Code|false}}, na samym początku definicji tej funkcji, co symbolizuje ustawioną na samym początku na brak okładek w spisie.
====== {{Śródtytuł|RozwazajLinie}}{{Code|RozwazajLinie}} ======
Funkcja sprawdza zmienne: {{Code|szablon}}, {{Code|obiekt}} i {{Code|kod}}, funkcją: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/Potrzebne}}}}, która służy do analizy linków wewnętrznych {{Code|LINW}} i zewnętrznych {{Code|LINKZ}}, a także szablonowych linków inteligetnych, którego elementami są artykuły książki, ale niekoniecznie, ale zawsze bądź razem jest to jakaś strona wewnętrzna, czy zewnętrzna, ale wewnątrz projektu, wykorzystując przy okazji, jednocześnie, funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}.
Funkcja przede wszystkim służy do analizy innych obiektów niż szablon, czy znacznik.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinie(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja sprawdza, czy napotkany artykuł niepusty, inny niż artykuł książki, lub jej artykuł, ale nie okładka (artykuł dozwolony), wtedy funkcja zwraca z wartością {{Code|1}}. W innym rozgałezieniu tej instrukcji ona rewiduje, czy parametr szablonowy wskazuje na link okładkę (artykuł niedozwolony), jeżeli tak, to ustawia zmienną na wartość prawdziwą, zmienną odpowiedzialną za linki okładek, czyli {{Code|czy_znaleziono_okladka}} {{LinkPatrz|czy_znaleziono_okladka}}.
Dla istniejącego parametru {{Code|kom}} ona zwraca wynik {{Code|0}}.
====== {{Śródtytuł|RozwazajLinieZnacznikowe}}{{Code|RozwazajLinieZnacznikowe}} ======
Funkcja rozważa ogólnie linie z obietami {{Code|SZABLON}} albo {{Code|LINKW}} lub {{Code|LINKZ}}, czy nie są obiektami linków okładek, a w przypadku, gdy taką jednak złapał, to ustawiana jest pewna zmienna. Funkcja słuzy przede wszystkim do analizy szablonów znaczników, czy normalnych ich, innych niż centrowania i nagłówków, ale nadal znaczników.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function RozwazajLinieZnacznikowe(zawartosc)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|zawartosc}} {{LinkPatrz|zawartosc|StronicowyParser/Rozdziały/Tom II}} - zawartość obiektu kodu bazy danych kodowania zakodowanego wikikodu.
Funkcja uruchamia funkcję iteratora bazy danych kodowania wikikodu, funkcja pomija elementy nie okładek, zatrzymując się właśne na nich, rozwijąc pierwszą z koleii okładkę. Iterator iteruje po zawartości jakiegoś elementu, aż do zakończenia danych, lub na podstawie decyzji przerwania analizy przez funkcję wewnątrz, aby analizować do pierwszego wspomnianego elementu.
{{HNumer|1=
======= {{Śródtytuł|CenterZnacznikLinia}}{{Code|CenterZnacznikLinia}} =======
}}
Funkcja właściwa do rozwazania szczególnego z obiektami.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function CenterZnacznikLinia(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję {{LinkŚródtytuł|RozwazajLinie}}, jeżeli ona zwraca wartość: {{Code|nil}} lub {{Code|1}}, wtedy funkcja się zakańcza z wartością nilową, przeciwnie funkcja zrzuca: {{Code|szablon}} (pierwsza wartość zwracana), {{Code|tekst}} (druga).
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja sprawdza dla obiektów szablonowych: {{Code|SZABLON}}, oraz obiektów linkowych: {{Code|LINKW}} i {{Code|LINKZ}} funkcją {{LinkŚródtytuł|CenterZnacznikLinia}}, wtedy za każdym razem ta funkcja zwraca wynik: {{Code|return szablon,tekst}}, która jest zrzucana do funkcji pierwszej iteratora, która zatrzymuje pętle kiedy chce, jeżeli ta funkcja zrzuciła wynik nilowy.
W innych przypadkach niż te obiekty wyżej opisane funkcja nie zwraca żadnego wyniku, co odpowiada wartości: {{Code|nil}}, wtedy pętla iteratora jest przerywana.
====== {{Śródtytuł|spis_tresci}}{{Code|spis_tresci}} ======
Jest to funkcja ogólna do rozwazania szablonów centrowania spisów treści. Funcja służy do rozważania nagłówków centrowanych szablonowo, czy znacznikowo, a nawet gdy zamiast tego mamy znacznik nagłówka.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function spis_tresci(wystepowanie_linkow,hn_number)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|wystepowanie_linkow}} {{Patrz|wystepowanie_linkow}} - zawartość szablonu spisu treści z linkami,
* {{Code|hn_number}} {{Patrz|hn_number}} - czy to jest zawartość szablonu centrowania.
Uruchamiana jest funkcja iteratora: {{Code|{{sr|#p.IteratorSzablonowyZakodowanegoTekstu|p=Szablonowe}}}}, którą iterujemy po całym zestawie dostępnych danych, którą w każdym momencie może być przerwana przez zwracanie wartości do funkcji. Funkcja służy do sprawdzenia, czy w spisie są jakieś początkowe artykuły, które nie należą do żadnego rozdziału, tzw. artykuły wstępne. Dalej są sprawdzane, czy wprowadzony tekstjako pierwszy argument, czy jest nagłówkiem spisu treści rozdziału centrowanego, czy nagłówkowego.
{{HNumer|1=
======= {{Śródtytuł|Spis}}{{Code|Spis}} =======
}}
Jest to funkcja szczególna do rozwazania szablonów centrowania spisów treści.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
local function Spis(szablon,obiekt,kod)...end;
</syntaxhighlight>
Parametry funkcji:
* Jak w: {{LinkZobaczTeż|szablon-obiekt-kod}}.
Funkcja uruchamia funkcję: {{Code|{{sr|#p.AnalizujLinkSzablonyOrazLinki|p=StronicowyParser/obiekty}}}}, wykorzystując przy okazji funkcję: {{LinkŚródtytuł|p.__FUNKCJA_KOMPLETOWANIA|StronicowyParser/Rozdziały/Tom III}}, jeżeli wartość któraś zwracana jest {{Code|kom}}, ona ma wynik odpowiadający wartości fałszywej, czyli to nie jest linku spisu treści, wtedy dla istniejącego wpisu w pierwszej wartości sprawdzanej dla artykułu książki, funkcja sprawdza według elementu: {{Code|{{sr|#p.ParsowanieNapisuWprowadzeniaTekstuSpisuStron|p=StronicowyParser/AnalizaSpisuRzeczy}}}}, czy to jest artykuł spisu treści, czy rzeczy, wtedy są inicjowane zmienne: {{Code|tak_ce_spis_tresci}} {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{Code|szablon_spis_tresci}} {{Patrz|szablon_spis_tresci}}, odpowiednimi wartościami, i jest zwracana wartość {{Code|1}}, w przypadku, gdy napotkano szablony, czy znaczniki, ale centrowania.
Dla innej wartości {{Code|kom}} zwracana jest wartość {{Code|0}}.
W pozostałych wypadkach funkcja nie zwraca żadnego wyniku.
{{HNumer|1=
======= Dalszy opis funkcji =======
}}
Funkcja dla obiektu: {{Code|SZABLON}}, oraz {{Code|LINKW}} i {{Code|LINKZ}}, uruchamia funkcję {{LinkŚródtytuł|Spis}}, której jeżeli wynik istnieje, to jest zwracany.
Przeciwnie w innym wypadku wypadku parametr {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}} jest kompletowany, jeśli istnieje, i trimowany jest funkcją: {{LzLua|mw.text.trim}}, co dalej jest sprawdzana kopią tabeli: {{LinkPatrz|p.tablica_nazw_wprowadzenia_tekstu_generalnego_spisu_rzeczy_woluminu}}, połączonej z metatabelką, ta tabela opisuje mniej więcej rozdziały spisu rzeczy, czy treści, a jeżeli to napotkano, wtedy inicjowane są zmienne: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|szablon_spis_tresci}}, odpowiednimi wartościami, tzn. kolejno: {{LinkPatrz|hn_number}} i {{LinkPatrz|wystepowanie_linkow}}, ze zmiennych parametrów w definiowanej funkcji, w tym przypadku jest zwracana wartość {{Code|1}}.
W innym wypadku nie jest zwracana żadna wartość.
====== Kod dalszy funkcji ======
{{HNumer|1=
======= Warunki wstępne =======
}}
Liczymy zmienną: {{Code|wystepowanie_linkow}} {{LinkPatrz|wystepowanie_linkow}}, przechwytując wartość z: {{Code|<nowiki>^[#:%*;%d%.>]+%s*(.+)$</nowiki>}}, jeśli istnieje, lub z: {{Code|<nowiki>^(%S+%s*.+)$</nowiki>}}.
Gdy mamy włączoną opcję: {{LinkPatrz|czy_dalej_rozwazac_zakodowane}}, co mówi o kodowanym wikitekście, czyli dla tekstu {{LinkPatrz|tekst_rozwiniety_calego_artykulu}}, wtedy możemy powiedzieć, ze również {{LinkPatrz|wystepowanie_linkow}}, w tej funkcji jest zakodowane.
{{Tab}}Gdy tak otrzymana zmienna istnieje, wtedy można powiedzieć, że będziemy za pomocą wcześniejszych funkcji znajdowali początkowe artykuły, który nie są przydzielone do żadnego rozdziału, dodatniego, czy ujemnego, na początku otrzymanego spisu treści dla jego początkowych linii.
{{HNumer|1=
======= Iterator po rozważanej zmiennej, czyli iteracja po tekście =======
}}
Uruchamiamy iterator po naszej wartości rozważanej zmiennej, z pierwszą jedyną funkcją, która przerywa iterację, gdy zwróci wartość {{Code|nil}}, jest później uruchamiana iteracja, która może się przerwać, kiedy chce, lub po zakończeniu zasobów danych.
Funkcja, użyta w definicji iteratora, wchodzi do jej ciała właściwego, gdy: {{LinkPatrz|obiekt|StronicowyParser/Rozdziały}}, jest równe {{ZobaczTeż|obiekt}}: {{Code|SZABLON}}, {{Code|ZNACZNIK}}, {{Code|LINKW}} i {{Code|LINKZ}}.
{{HNumer|1=
======== Obiekt szablonowy, czyli typu SZABLON ========
}}
W tej funkcji, gdy obiekt to {{Code|SZABLON}}, sprawdzamy, czy on jest szablonem napisu wprowadzenia tekstu o nazwie z: {{LinkPatrz|p.szablony_wprowadzenia_napisu_spisu_rzeczy|StronicowyParser/Rozdziały/Tom IV}}, jeżeli jest, to kiedy jego zawartość istnieje, wtedy jest liczona zmienna jego zawartości tego szablonu ze wzoru przechwytywania: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, co do liczenia wartości {{Code|wartosc}} {{Patrz|wartosc}}, wykorzystujemy funkcję: {{LinkŚródtytuł|spis_tresci}}, do liczenia szablonów nagłówka, ale przed pierwszymi pierwszymi artykułami, lub artykułami w nagłówku. A gdy ta zawartość nie istnieje, to wtedy do liczenia tego korzystamy z: {{LinkŚródtytuł|RozwazajLinie}}, do rozważania całych linii z obiektami, jakich są okładki, a gdy to nie jest ten szablon, to z: {{LinkŚródtytuł|RozwazajLinie}}, a jeżeli jego wartość zwracana istnieje, to ustawiana jest wartość: {{Code|podrecznik}} {{Patrz|podrecznik}}, na wartość {{Code|true}}, czyli znalazł okłądkę, przeciwnie na {{Code|false}}, a tu już nie.
{{HNumer|1=
======== Obiekt znacznikowy, czyli typu ZNACZNIK ========
}}
A gdy ten obiekt to {{Code|ZNACZNIK}}, gdy istnieje jego zawartość, to dla znacznika {{Tag|center}} dla tekstu przechwytywanego z jego zawartości: {{Code|<nowiki>^'*%s*(.-)%s*'*$</nowiki>}}, wtedy jest uruchamiana {{LinkŚródtytuł|spis_tresci}}, a gdy to nie jest ten znacznik, a może to jest jeden z: {{LinkPatrz|p.znaczniki_wprowadzenia_tekstu|StronicowyParser/Rozdziały/Tom II}}, to wydzielamy z jego zawartości, z wartości przechwytywania, z takiego samego wzoru, co poprzednio, co później wywołujemy {{Code|{{sr|#p.HnNumerWprowadzeniaTekstu|b=tak}}}}, do badania zwykłych nagłówków, a potem z tym parametrem, jako drugą wartość, a pierwszą jest tak otrzymana z przechwytywania wsadzamy do funkcji: {{LinkŚródtytuł|spis_tresci}} i liczymy {{LinkPatrz|wartosc}}. A jeżeli nie dopasowano żadnego, z tych, znacznika, to liczymy {{LinkPatrz|wartosc}} z {{LinkŚródtytuł|RozwazajLinieZnacznikowe}}.
{{HNumer|1=
======== Obiekty linkowe, czyli typu: LINKW i LINKZ, a więc linki wewnętrzne i zewnętrzne ========
}}
Dla obiektów: {{Code|LINKW}} i {{Code|LINKZ}}, wykorzystujemy funkcję: {{LinkŚródtytuł|RozwazajLinie}}, do liczenia {{LinkPatrz|wartosc}}, a gdy ona istnieje, to {{LinkPatrz|podrecznik}} ustawiamy na {{Code|true}}, dla przypadku, gdy napotkano okładkę, przeciwnie na {{Code|false}}, a tu już nie, tak jak dla obiektu {{Code|SZABLON}}.
====== Kod uruchamiany w zależności od wartości logicznej zmiennej {{Code|podrecznik}} ======
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|true}}
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}} jest {{Code|true}}, i gdy zmienna {{Code|czy_rozdzial}} {{Patrz|czy_rozdzial}}, jest bez wartości, wtedy dla {{LinkPatrz|wartosc}} równej {{Code|1}}, wtedy w zmiennej {{Code|wystepowanie_linku_lub_szablonu}}, liczy występowanie danego elementu na początku tekstu, pod warunkiem, że tekst nie kończy się na {{Code|.}}, dla określonej linii nieporządnej linii. W ten sposób możemy sprawdzić, czy są artykuły, których nie należy uwzględniać w tabeli artykułów, a jeżeli nie ma takich artykułów, wtedy zwracane jest {{Code|nil}}, przeciwnie ustawiana jest wartość: {{LinkPatrz|czy_rozdzial}}, na {{Code|true}}. A gdy {{LinkPatrz|wartosc}} jest równa {{Code|0}}, wtedy {{ZobaczTeż|wartosc}} jest liczone występowanie elementu, i zwracana jest wartość pusta z drugim nienilowym argumentem, gdy występowań liczonych jest większa niż zero, wtedy zawartość zmiennej {{Code|tekst}} jest podmieniana, w innym wypadkujuż nie.
; Zmienna {{Code|podrecznik}} {{Code|{{=}}}} {{Code|false}}
{{Tab}}Gdy {{LinkPatrz|podrecznik}} ma wartość {{Code|false}}, wtedy dla żadnej wartości {{LinkPatrz|wartosc}}, gdy zmienna: {{LinkPatrz|czy_znaleziono_okladka}} {{ZobaczTeż|czy_znaleziono_okladka}}, ma wartość prawdziwą, wtedy sprawdzamy, czy przed kodem jest ciąg znaków określone wzorem {{Code|<nowiki>[%s%p]*<[%s<]-%s*'*%s*</nowiki>}}, jeżeli nie, to zwracamy w podobny sposób, jak to liczyliśmy wcześniej dla {{LinkZobaczTeż|wartosc}}, a jeśli jednak tak, to zmienna: {{LinkPatrz|czy_znaleziono_okladka}}, przybiera wartość odpowiadającej {{Code|false}}, dla tego przypadku nic nie zwracamy w tym rozgałęzieniu instrukcji warunkowej, w innym rozgłazieniu instrukcji '''jeśli''' dla: {{LinkPatrz|czy_znaleziono_okladka}} {{LinkZobaczTeż|czy_znaleziono_okladka}}, przebiera wartość jednak {{Code|false}}, wtedy podobnie zwracamy wyniki, jak dla: {{LinkZobaczTeż|wartosc}}.
; Gdy zmienna {{Code|podrecznik}} nie przyjmuje żadnej wartości logicznej
{{Tab}}Gdy zmienna {{LinkPatrz|podrecznik}}, nie przyjmuje żadnej wartości logicznej, wtedy dla {{LinkPatrz|wartosc}} dla żadnej jego wartości, funkcja jest zakańczana, przeciwnie, liczymy wartość {{LinkPatrz|tak}}, jako ({{Code|<nowiki>tak=tak or (wartosc==1)</nowiki>}} {{LinkPatrz|tak}}), gdy {{Code|wartosc}} jest równa {{Code|1}}, też jest zakańczana, w przeciwnym wypadku funkcja zwraca dwie wartości po kolei, tzn. {{Code|szablon}} i {{Code|tekst}}.
====== Dalszy ciąg funkcji w iteratorze wyszukujących pierwsze artykuły bez rozdziału ======
Dla elementów innych niż typu {{LinkZobaczTeż|obiekt}}, wtedy funkcja zwraca wyniki, jak dla {{LinkZobaczTeż|wartosc}}.
====== Użytek wartości ze zmiennej {{Code|tak}} ======
Na końcu w funkcji: {{LinkŚródtytuł|Wystepowanie}}, jest instrukcja warunkowa, w którym gdy zmienna {{LinkPatrz|tak}} jest równa wartości prawdziwej, to uruchamiana jest funkcja {{Code|funkcja1}} {{LinkPatrz|funkcja1}} z parametrem: {{LinkPatrz|szablon_spis_tresci}}, przeciwnie bezparametrowo {{Code|funkcja2}} {{LinkPatrz|funkcja2}}.
==== Kod funkcji iteratora - funkcji zwracanej przez jego generatora ====
Liczymy poszczególne linie z iteratora otrzymanego z {{LinkPatrz|iter_main}}.
; Deklaracje zmiennych
Deklarujemy użyte zmienne, jak: {{Code|nazwa_rozdzialu}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|poziom_rozdzialu}} {{Patrz|poziom_rozdzialu}}, {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, {{Code|numeracja_rozdzialu}} {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
;; Rozdział dodatni
Sprawdzamy, czy ta linia reprezentuje rozdział dodatni równaniowy, wtedy mamy tylko ustawione zmienne: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{LinkPatrz|poziom_rozdzialu}}.
Gdy nie uzyskano takiego rozdziału, wtedy dla zmiennej: {{LinkPatrz|czy_rozdzialy_analizowac}}, o wartości {{Code|false}}, inne linie nie będą sprawdzane, czy są rozdziałami,w innym wypadku, to rewidujemy funkcją. Gdy jednak to robimy, to dla {{LinkPatrz|czy_w_spisie_tresci}} odpowiadającej wartości fałszywej uruchamiamy funkcję {{LinkŚródtytuł|Wystepowanie}} z parametrem pierwszym {{LinkPatrz|linia|StronicowyParser/Rozdziały}} oraz z, drugą i trzecią, funkcją, który z parametru {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} usuwa jej wartość.
;;; Pierwsza anonimowa funkcja
{{Tab}}Tą pierwszą funkcją, jest tak gdy: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, z wartością odpowiadającej fałszywej, ustawiamy {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|Spis treści}}, a {{LinkPatrz|poziom_rozdzialu}} na {{Code|nil}}. Przeciwnie sprawdzamy wartość zmiennej {{LinkPatrz|szablon_spis_tresci}}, a jeżeli ona istnieje, to liczymy jego rozdział i numerację na podstawie: {{Code|{{sr|#p.NumeracjaOrazTekstWprowadzeniaTekstu|b=tak}}}}. A gdy nie ma takiego rozdziału, to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} jest ustawiana na {{LinkPatrz|szablon_spis_tresci}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} na {{Code|nil}}. A jeżeli {{LinkPatrz|szablon_spis_tresci}} nie istnieje, to nazwa rozdziału jest ustawiana na {{Code|Spis treści}}, a {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustawiona jest wtedy na {{Code|nil}}.
Dalej liczymy: {{Code|czy_rozdzial_naglowka_hn}} {{Patrz|czy_rozdzial_naglowka_hn}}, zamieniając zmienną liczbową: {{LinkPatrz|tak_ce_spis_tresci|StronicowyParser/Rozdziały/Tom IV}}, jeżeli ona nie istnieje, na wartość liczbową, a jeśli nie ma takiej wartości, to poziom rozdziału {{LinkPatrz|poziom_rozdzialu}} przyjmuje wartość {{Code|2}}. Na podstawie przeciwnej wartości {{LinkPatrz|czy_rozdzial_naglowka_hn}}, ustalamy, czy to jest rozdział centrowany, inicjując zmienną {{Code|czy_rozdzial_centrowany}} {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}} wartością {{Code|true/false}}. Wtedy początek rozdzialu {{Code|poczatek_rozdzialu}} {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} ustalamy na wartość nieistniejącą.
;;; Druga anonimowa funkcja
{{Tab}}Gdy nie nie dało się znaleźć odpowiednich pocżątków w liniach początkowych spisu, tzn. artykułów wstępnych, przed wszelkimi rozdziałami, wtedy nazwa rozdziału jest nilowana.
;; Inne możliwe rozdziały niż dodatnie, albo możliwe linie tekstowe
Gdy nie udało się znaleźć {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, jako z elementu nagłówka rozdziału dodatniego, to potrzebne do tego parametry liczymy z funkcji {{LinkPatrz|parser}}, według:
<syntaxhighlight lang="lua">
local linia_temp;
linia_temp,nazwa_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany=parser(linia,true);
</syntaxhighlight>
Ta funkcja sprawdza, czy dana linia niebądąca rozdziałem dodatnim równaniowym, czy można uznać za rozdział, a jeżeli tego nie można zrobić, to ona zwraca wynik tylko {{Code|nil}}.
==== Wartości zwracane przez iterator ====
Gdy: {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, gdy istnieje, wtedy ustalamy zmienną: {{LinkPatrz|czy_w_spisie_tresci}}, na wartość {{Code|true}}, wtedy zbieramy dany rozdział, wraz z jego tekstem, i innymi parametrami, w sposób {{Patrz|zwracane parametry}}:
<syntaxhighlight lang="lua">
{naglowek,linia,},tekst_rozdzialu,poziom_rozdzialu,poczatek_rozdzialu,numeracja_rozdzialu,czy_rozdzial_centrowany;
</syntaxhighlight>
Gdzie parametry wartości zwracanych:
* {{Code|naglowek}} - jest to {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|linia}} - jak w: {{LinkPatrz|linia|StronicowyParser/Rozdziały}},
* {{Code|tekst_rozdzialu}} {{Patrz|tekst_rozdzialu}} jest to właśnie {{Code|str}} {{LinkPatrz|str}} w kodzie,
* {{Code|poczatek_rozdzialu}} - jak w: {{LinkPatrz|poczatek_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|numeracja_rozdzialu}} - jak w: {{LinkPatrz|numeracja_rozdzialu|StronicowyParser/Rozdziały/Tom IV}},
* {{Code|czy_rozdzial_centrowany}} - jak w: {{LinkPatrz|czy_rozdzial_centrowany|StronicowyParser/Rozdziały/Tom IV}}.
Gdy {{LinkPatrz|__FUNKCJA2}} nie istnieje, wtedy: {{Code|nagłówek}} {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}} i {{Code|tekst_rozdziału}} {{LinkPatrz|tekst_rozdzialu}}, kompletujemy funkcją: {{Code|{{sr|#p.KompletowanieSzablonoweZakodowanegoTekst|p=Szablonowe}}}}, i te wartości {{LinkPatrz|zwracane parametry}} zwracamy na zewnętrz funkcji.
Gdy przeciwnie, wtedy po uzyskaniu tych zmiennych odpowiednio, na nagłówek działamy funkcją {{Code|__FUNKCJA2}} {{LinkPatrz|__FUNKCJA2}} z parametrem identyfikującym, że to jest rozdział {{LinkPatrz|nazwa_rozdzialu|StronicowyParser/Rozdziały/Tom IV}}, czy tekst rozdzialu {{LinkPatrz|tekst_rozdzialu}}.
{{BrClear}}
<noinclude><!--
-->{{ProstaStronaKoniec}}<!--
-->{{Kategoria|Opisy funkcji, w Lua w Scribunto, w modułach}}<!--
--></noinclude>
82kvpjb2bw3ud24wo6jovae6f9615ni
Moduł:ŹródłoLua/opis
828
64112
554031
553945
2026-09-02T19:02:39Z
Persino
2851
/* Przykład */
554031
wikitext
text/x-wiki
== Opis ==
Funkcja w module do prezentacji wyników parametrów o pewnych nazwach i ich wartościach.
== Użycie ==
Funkcja służy do wyświetlania w szablonie {{s|ŹródłoLua}} pewnej tabelki o pewnych kluczach i ich wartościach, rozkładając je na czynniki pierwsze.
Definicja skrótowa funkcji:
<syntaxhighlight lang="lua">
p["ŹródłoLua"]=function(frame,args)...end;
</syntaxhighlight>
Parametry funkcji:
* {{Code|frame}} {{Patrz|frame}} - tablica ramki funkcji tablicy transportu modułu,
* {{Code|args}} - pewna tablica z parametrami nazwanymi.
: Parametr {{Code|frame}} {{LinkPatrz|frame}} służy do rozwijania szablonu podświetlania składni {{s|ŹródłoLua}}, na podstawie funkcji, języka {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, takiej: {{LzLua|frame:preprocess}}.
== Przykład ==
* {{m|Wikibooks/Przykład/ŹródłoLua/ŹródłoLua/}}
== Zobacz też ==
* {{s|ŹródłoLua}} - szablon do wyświetlania kodu {{lpg|Lua}} w {{lpr|Lua|Scribunto}}, zbudowany w oparciu o: {{s|ŹródłoKodu}}.
* {{s|ŹródłoKodu}} - ogólny szablon kombajn do wyświetlania, jednego z wielu języków programowania, kodu z podświetlaniem składni. Szablon wykorzystuje znacznik mechanizmu {{NS|l=tak|w=tak|k=mw}} o postaci: {{Tag|syntaxhighlight|parametry=lang="..."}}.
{{BrClear}}
<includeonly><!--
++++ DODAWAJ KATEGORIE PONIŻEJ TEJ LINII -->
</includeonly>
79dsx88zvosat7h1imqrbfqnz1ugv5j
Moduł:Wikibooks/Przykład/ŹródłoLua/ŹródłoLua/Kod 3
828
64120
553971
2026-09-02T13:11:23Z
Persino
2851
Utworzono nową stronę „local p={}; p["Przykład"]=function(frame) local args={ {"mw",mw.site.namespaces,}, } local zrodlolua_modul=require("Module:ŹródłoLua"); local wikikod=zrodlolua_modul["ŹródłoLua"](frame,args); return wikikod; end; return p;”
553971
Scribunto
text/plain
local p={};
p["Przykład"]=function(frame)
local args={
{"mw",mw.site.namespaces,},
}
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,args);
return wikikod;
end;
return p;
ignyr2gjptrcpetcfp5xygnggdmemhd
553973
553971
2026-09-02T13:14:25Z
Persino
2851
553973
Scribunto
text/plain
local p={};
p["Przykład"]=function(frame)
local args={
{"mw.site.namespaces",mw.site.namespaces,},
}
local zrodlolua_modul=require("Module:ŹródłoLua");
local wikikod=zrodlolua_modul["ŹródłoLua"](frame,args);
return wikikod;
end;
return p;
nqz77mhzh04tt2lkv0gkz8yxn0mem71
Moduł:Wikibooks/Przykład/ŹródłoLua/ŹródłoLua/Kod 3/opis
828
64121
553972
2026-09-02T13:12:34Z
Persino
2851
Utworzono nową stronę „; Przykład, z wykorzystaniem tego modułu, daje wyniki{{dk}} {{#invoke:Wikibooks/Przykład/ŹródłoLua/ŹródłoLua/Kod 3|Przykład}}.”
553972
wikitext
text/x-wiki
; Przykład, z wykorzystaniem tego modułu, daje wyniki{{dk}}
{{#invoke:Wikibooks/Przykład/ŹródłoLua/ŹródłoLua/Kod 3|Przykład}}.
p4nfb8dijhzf8472eqv6f1b2frudib2
Wikipedysta:Persino/Gadget-Vector-2022.css/skin-night.css
2
64122
554002
2026-09-02T16:42:06Z
Persino
2851
Utworzono nową stronę „html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{ border-bottom:1px solid black; } html.skin-theme-clientpref-night > body ul.redirectText > li{ background-color:white !important; } html.skin-theme-clientpref-night > body ul.redirectText > li a{ background-color:black !important; color:white !important; } html.skin-theme-clientpref-night > body .mw-revslider-revision{ background-color:white !important; z-index:2; } h…”
554002
css
text/css
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
e2glfp8ww1wbm8ddr6q0sidn87gxgcr
554011
554002
2026-09-02T17:07:17Z
Persino
2851
554011
css
text/css
@import "/w/index.php?title=Wikipedysta:Persino/vector-2022.css/skin-night.css&action=raw&ctype=text/css";
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
6bxwzflo443e2z1we33oszxh20xyps6
554012
554011
2026-09-02T17:08:15Z
Persino
2851
554012
css
text/css
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
e2glfp8ww1wbm8ddr6q0sidn87gxgcr
554019
554012
2026-09-02T17:35:46Z
Persino
2851
554019
css
text/css
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body form.mw-editform .wikiEditor-ui .cm-content::selection,
html.skin-theme-clientpref-night > body form.mw-editform .wikiEditor-ui .cm-content *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body form.mw-editform .wikiEditor-ui .cm-content::-moz-selection
html.skin-theme-clientpref-night > body form.mw-editform .wikiEditor-ui .cm-content *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
plcs9hxamnh6gkp2kuj1vesz4fwirtm
554020
554019
2026-09-02T17:46:27Z
Persino
2851
554020
css
text/css
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:unset !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
lbx03wm9ik2zwp431u1z0w9sjttdju9
554021
554020
2026-09-02T17:59:33Z
Persino
2851
554021
css
text/css
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
gg6iu2kat5utpso24gyz145fz96h9hd
554024
554021
2026-09-02T18:24:35Z
Persino
2851
554024
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
hvec5jiv3gkrwukfjbl1ih1gjaeyqnb
554026
554024
2026-09-02T18:57:19Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikipedysta:Persino/vector-2022.css/skin-night.css]] do [[Wikipedysta:Persino/Gadget-Vector-2022.css/skin-night.css]], bez pozostawienia przekierowania pod starym tytułem
554024
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
hvec5jiv3gkrwukfjbl1ih1gjaeyqnb
554032
554026
2026-09-02T19:12:00Z
Persino
2851
554032
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black !important;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
j8a80u4z6oc3ukovp74c4n1z23ee600
554033
554032
2026-09-02T19:16:13Z
Persino
2851
554033
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
hvec5jiv3gkrwukfjbl1ih1gjaeyqnb
554034
554033
2026-09-02T19:18:04Z
Persino
2851
554034
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
lriscysyg95e8buf1kt8g7q1v4huuec
554035
554034
2026-09-02T19:22:19Z
Persino
2851
554035
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon:not(.oo-ui-icon-wrapping),
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon:not(.oo-ui-icon-wrapping) *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
iieqwmsg4vevjkpqz8y8lv1ie669t9o
554036
554035
2026-09-02T19:28:00Z
Persino
2851
554036
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.oo-ui-icon-wrapping):not(oo-ui-icon-gotoLine),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.oo-ui-icon-wrapping):not(oo-ui-icon-gotoLine) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon:not(.oo-ui-icon-wrapping):not(oo-ui-icon-gotoLine),
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon:not(.oo-ui-icon-wrapping):not(oo-ui-icon-gotoLine) *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
0gwxg9o6rvydwfpjlt9z0ho6yyrwjja
554037
554036
2026-09-02T19:30:27Z
Persino
2851
554037
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.oo-ui-iconElement-icon) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
91fq1ryhml13h7z7jk7j3mxz9a3pvm3
554038
554037
2026-09-02T19:33:34Z
Persino
2851
554038
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
lriscysyg95e8buf1kt8g7q1v4huuec
554042
554038
2026-09-03T02:16:18Z
Persino
2851
554042
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText):not(oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon:not(.oo-ui-icon-wrapping),
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon:not(.oo-ui-icon-wrapping) *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
iieqwmsg4vevjkpqz8y8lv1ie669t9o
554043
554042
2026-09-03T02:17:31Z
Persino
2851
554043
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
hvec5jiv3gkrwukfjbl1ih1gjaeyqnb
554044
554043
2026-09-03T02:41:31Z
Persino
2851
554044
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-articleSearch{
}
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body > span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
pz6vxrvl2varp5j7jm8x9la9mktr0pl
554045
554044
2026-09-03T02:45:23Z
Persino
2851
554045
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-articleSearch{
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
quith0diuz7kfyou7r0zm9xglcxcxfg
554046
554045
2026-09-03T02:49:32Z
Persino
2851
554046
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-articleSearch{
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
8xfoos50mq5bwscvqr0c4pz30hcvkgl
554047
554046
2026-09-03T02:51:59Z
Persino
2851
554047
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-articleSearch{
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
qrybe896f2500sl5bk8qyd630wlbrye
554048
554047
2026-09-03T02:56:05Z
Persino
2851
554048
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-articleSearch{
color: white;
background-color: unset;
border-color: white;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white;
background-color: black;
border-color: white;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
mv07rjtuigcx06nfp511n7sjt7oobr9
554049
554048
2026-09-03T02:59:49Z
Persino
2851
554049
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-articleSearch{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
877xvnufljowrbmdft5ppyshfriylwq
554050
554049
2026-09-03T03:04:24Z
Persino
2851
554050
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
pekus7im00i8yri0kt1qrjdm9cpiz40
554051
554050
2026-09-03T03:05:59Z
Persino
2851
554051
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-image-progressive.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
proha8o5ccjqh41y8qc4a238hvphf0i
554052
554051
2026-09-03T03:08:43Z
Persino
2851
554052
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
8hb0j8egps59sywhky9x7zpfodd40vp
554053
554052
2026-09-03T03:21:18Z
Persino
2851
554053
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
dth0lkuz5m2x457oqzvvwri3n89jz8a
554054
554053
2026-09-03T03:24:29Z
Persino
2851
554054
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
background-color:unset !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon,
html.skin-theme-clientpref-night > body > .mw-page-container span.oo-ui-iconElement-icon *,
html.skin-theme-clientpref-night > body .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-destructive > .oo-ui-buttonElement-button,
html.skin-theme-clientpref-night > body .oo-ui-labelElement-label{
background-color:unset;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
pvk0f26fgbo5t43f34kl0df462sr36r
554055
554054
2026-09-03T03:29:44Z
Persino
2851
554055
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:not(:hover) .linenos{
color:white;
background-color:black;
border-color:white;
}
ghyxevmbr0nmi3ka2nx59mksnye8k5a
554056
554055
2026-09-03T03:37:16Z
Persino
2851
554056
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay),
html.skin-theme-clientpref-night > body form.mw-editform:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay) *,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form *,
html.skin-theme-clientpref-night > body form#wpFilterForm,
html.skin-theme-clientpref-night > body form#wpFilterForm *,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
3x7fw10uovems6n0x89wuu9odei5lfy
554057
554056
2026-09-03T03:38:58Z
Persino
2851
554057
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#wpFilterForm div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form#mw-abusefilter-editing-form div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection,
html.skin-theme-clientpref-night > body form.mw-editform div.ace_editor > div.ace_scroller > div.ace_content > div.ace_marker-layer > div.ace_selection{
background-color:dimgray !important;
color:black !important;
border-color:white !important;
filter:grayscale(100%);
}
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search *,
html.skin-theme-clientpref-night div.ui-resizable > div.ace_editor > div.ace_scroller > div.ace_search input.ace_search_field{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
rs4wknekuuttjcdkglobxolsbco02lv
554058
554057
2026-09-03T03:44:53Z
Persino
2851
554058
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body form.mw-editform .editButtons,
html.skin-theme-clientpref-night > body form.mw-editform .editButtons *,
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
s1of9dkp1pal0xbkzrifs5iqc3o1sp6
554059
554058
2026-09-03T03:47:12Z
Persino
2851
554059
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white;
background-color:black;
border-color:white;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
796t5wyup3zohddb4ft3080on0n0bxr
554060
554059
2026-09-03T03:53:57Z
Persino
2851
554060
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
h4i7pyxog7g7krbmup094xh6l2xc6o7
554061
554060
2026-09-03T04:07:56Z
Persino
2851
554061
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .imeselector,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
gauqs0sd31j17fmww1t94regkcxoukf
554062
554061
2026-09-03T04:17:51Z
Persino
2851
554062
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
q0pj2yjmpua76gy5t8kok05p3xw3ivt
554063
554062
2026-09-03T04:21:49Z
Persino
2851
554063
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
kpqciw0cjcnnma788hu2jx8zd60wn5v
554064
554063
2026-09-03T04:31:17Z
Persino
2851
554064
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
4i8x9ha9y6nszzonqnmd5e6wf8u4qc6
554065
554064
2026-09-03T04:40:29Z
Persino
2851
554065
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
6ikrc2b193rw0msy0cc2r2uan8f1921
554066
554065
2026-09-03T04:42:56Z
Persino
2851
554066
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .mw-notification-area-overlay{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
062vojs0tpr0gcfjoq626fa857imnwj
554067
554066
2026-09-03T04:45:36Z
Persino
2851
554067
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .mw-notification-area-overlay{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
a1v4bsevcwmkflr6mhbc4xor3mrqq0m
554068
554067
2026-09-03T04:46:13Z
Persino
2851
Anulowano wersję [[Special:Diff/554067|554067]] autorstwa [[Special:Contributions/Persino|Persino]] ([[User talk:Persino|dyskusja]])
554068
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .mw-notification-area-overlay{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
062vojs0tpr0gcfjoq626fa857imnwj
554069
554068
2026-09-03T04:48:16Z
Persino
2851
554069
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .mw-notification-area-overlay{
width:fit-content !important;
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button{
background-color:black;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
40ger4hhjjnps90if6aa62n09ps1m3y
554070
554069
2026-09-03T04:49:18Z
Persino
2851
554070
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .mw-notification-area-overlay{
width:fit-content !important;
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
h66hfrld8pbve5zgjspyk5iw95vef3t
554071
554070
2026-09-03T04:51:30Z
Persino
2851
554071
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .mw-notification-area-overlay{
width:fit-content !important;
background-color:transparent !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
nluiskq5i0q8hvfno9n9lqrmhs8ud8l
554072
554071
2026-09-03T04:52:24Z
Persino
2851
554072
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .mw-notification-area-overlay{
width:fit-content !important;
background-color:transparent !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
0uzmr651qwmehdm19kpl9s58lyu4m9x
554073
554072
2026-09-03T04:54:30Z
Persino
2851
554073
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .mw-notification-area-overlay{
background-color:transparent !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
gz0l8ibe5w4tjjha3cl92eovoa4zjci
554074
554073
2026-09-03T04:54:47Z
Persino
2851
554074
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .mw-notification-area-overlay{
background-color:transparent !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
puc305b51o46a4wg8sv1zyfkdwxw0hj
554075
554074
2026-09-03T04:57:32Z
Persino
2851
554075
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
ip9hhr41y7wnz7u9il5hnoq0579zhqb
554076
554075
2026-09-03T04:58:13Z
Persino
2851
554076
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
c6rivfw9hyf4krmwnutyrglizifue68
554077
554076
2026-09-03T05:01:50Z
Persino
2851
554077
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay *{
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
c1nfhwqfp9lf2elviqvoq486c6spuzk
554078
554077
2026-09-03T05:09:16Z
Persino
2851
554078
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
c6rivfw9hyf4krmwnutyrglizifue68
554079
554078
2026-09-03T05:24:49Z
Persino
2851
554079
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
margin-top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
9smvxq20e5g7ts9c9jno4iq01bx7waa
554080
554079
2026-09-03T05:27:11Z
Persino
2851
554080
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
margin-top:0 !important;
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
1sbvwohi9g660p50g461x1413esydg4
554081
554080
2026-09-03T05:28:20Z
Persino
2851
554081
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::selection, .cm-scroller .cm-line::selection,
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
.cm-scroller .cm-line ::-moz-selection, .cm-scroller .cm-line::-moz-selection,
.ͼ4 .cm-line ::-moz-selection, .ͼ4 .cm-line::-moz-selection,
.ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .ͼo .cm-selectionBackground, .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
mqu3bnr8drw1l8rl7j5ki34ob79ixg6
554082
554081
2026-09-03T05:38:23Z
Persino
2851
554082
css
text/css
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
@media screen {
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
}
@media screen {
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
h2af0nvkr3y701cqzw96n2asuyb0xx4
554083
554082
2026-09-03T05:47:53Z
Persino
2851
554083
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
}
bbptt3zxj1580evl0xb4pbtwenp3i1i
554084
554083
2026-09-03T06:00:23Z
Persino
2851
554084
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
}
b8kxulegghiuhge9bdbmgwfl7sp1i99
554085
554084
2026-09-03T06:01:51Z
Persino
2851
554085
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
}
pb67yeebojsy0rrihryog3c7dsbab5h
554086
554085
2026-09-03T06:10:39Z
Persino
2851
554086
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
c2rzeycqktut7pnyg25q1wby2b3ild2
554087
554086
2026-09-03T06:17:22Z
Persino
2851
554087
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
0exnk8nwfxr66kh2okyxw3da7zolufz
554088
554087
2026-09-03T06:19:51Z
Persino
2851
554088
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
q0id5qrd68ib6ppbahit4oexind8uft
554089
554088
2026-09-03T06:21:55Z
Persino
2851
554089
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
trssyy4m6k77ehm1gg4l37x4yic1670
554090
554089
2026-09-03T06:25:15Z
Persino
2851
554090
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
l7ikc6mnspjsrez4ffokkykkkvnopbr
554091
554090
2026-09-03T06:30:10Z
Persino
2851
554091
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow,
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
bi8ala2zh6jnb3qonlt1t233ckr7w20
554092
554091
2026-09-03T06:38:58Z
Persino
2851
554092
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
l9fpwr9ekqb1epntowhh57vqaiostvu
554093
554092
2026-09-03T06:41:19Z
Persino
2851
554093
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
d1zkct1erpjkjcv4al6rzsf80dtlhdk
554094
554093
2026-09-03T06:53:27Z
Persino
2851
554094
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
59wmxjb6174rjcstwgw8cjym0j4a1im
554095
554094
2026-09-03T06:57:14Z
Persino
2851
554095
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
gzfb7e1b7bqgd9yolqrdav33zmq9qqx
554096
554095
2026-09-03T07:04:54Z
Persino
2851
554096
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
kygn48ggz58qonh8hbpaf53p9nznhim
554097
554096
2026-09-03T07:08:38Z
Persino
2851
554097
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
db6wcc7eguzjskxb4sj6vzhzmcu81ez
554098
554097
2026-09-03T07:10:30Z
Persino
2851
554098
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
jqd6j9xpti8qlgmxsghru8rh1dxm43z
554099
554098
2026-09-03T07:15:18Z
Persino
2851
554099
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
ssnr93f8idotv211q4z13qxq8pfl7z8
554100
554099
2026-09-03T07:25:06Z
Persino
2851
554100
css
text/css
@media screen{
html.skin-theme-clientpref-night > body{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body *{
filter:unset !important;
}
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
8heszo3x63ol59qmx432x2vxrgekntt
554101
554100
2026-09-03T07:30:15Z
Persino
2851
554101
css
text/css
@media screen{
html.skin-theme-clientpref-night > body{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body *{
filter:unset !important;
}
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
m7thitmpsv1och10yt659lgnyciaml4
554102
554101
2026-09-03T07:33:22Z
Persino
2851
554102
css
text/css
@media screen{
html.skin-theme-clientpref-night > body{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body *{
filter:unset !important;
}
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner :not(.mw-highlight) > pre *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
50umj462w5k1at987vnexgey5vvnbyy
554103
554102
2026-09-03T07:42:14Z
Persino
2851
554103
css
text/css
@media screen{
html.skin-theme-clientpref-night > body{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body *{
filter:unset !important;
}
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
rk9jf17ktovqvf1e8vdbzpt7wdwogxd
554104
554103
2026-09-03T07:45:59Z
Persino
2851
554104
css
text/css
@media screen{
html.skin-theme-clientpref-night > body{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body *{
filter:unset !important;
}
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
bmj8l46sdu0fg9yoie1b7u0xxiy6hz5
554105
554104
2026-09-03T07:48:03Z
Persino
2851
554105
css
text/css
@media screen{
html.skin-theme-clientpref-night > body{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body *{
filter:unset !important;
}
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background:none !important;
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
9v54aqw3x4y3lnmzai663xqhptofsay
554106
554105
2026-09-03T07:51:53Z
Persino
2851
554106
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background:none !important;
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
cq96iimbbo8n3ps3sq51flmsdc70yw2
554107
554106
2026-09-03T07:58:34Z
Persino
2851
554107
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background:auto !important;
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
7m53mpxb1t84219ckwb40a60o19rypl
554108
554107
2026-09-03T08:04:26Z
Persino
2851
554108
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-namespace-selection{
background:auto !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
beazx41qmjk7h7h85iqaw1qhcujyazg
554109
554108
2026-09-03T08:05:40Z
Persino
2851
554109
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:auto !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
n7ft5c6jjj74c3tub4btgtf7gdtc8wx
554110
554109
2026-09-03T08:06:44Z
Persino
2851
554110
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
jgpqlwkehtcdos58kpekkhnqhh78x58
554111
554110
2026-09-03T08:27:12Z
Persino
2851
554111
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:none !important;
height:1.7em !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
dhxfzriejp4w37wxjhj1la13y9r0fzt
554112
554111
2026-09-03T08:31:21Z
Persino
2851
554112
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget,
html.skin-theme-clientpref-night > body div#mw-teleport-target > div.mw-rcfilters-ui-overlay > .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7em !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
pp2wd4sz89tpeaggqezv7btayy260lg
554113
554112
2026-09-03T08:34:26Z
Persino
2851
554113
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7em !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
diwwb7flhymotku53mzq1a08u028q2w
554114
554113
2026-09-03T08:41:44Z
Persino
2851
554114
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7em !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px 0;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
i08gvp77xx6idc0yuq7anr8cwp6ux45
554115
554114
2026-09-03T08:42:19Z
Persino
2851
554115
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7em !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget[type="checkbox"]{
margin: 1px 0;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
p2wn9cv7cx0aoy2wbpvqigk6m0lqbbs
554116
554115
2026-09-03T08:45:09Z
Persino
2851
554116
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7em !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px 0;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
i08gvp77xx6idc0yuq7anr8cwp6ux45
554117
554116
2026-09-03T08:46:18Z
Persino
2851
554117
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7em !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
qydv6rn9gp0p5j2tgjws1b6wjwlyhp2
554118
554117
2026-09-03T08:49:08Z
Persino
2851
554118
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
5u2rdlukn01su0zgxdjp3551hyav7vo
554119
554118
2026-09-03T08:51:37Z
Persino
2851
554119
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
lu6gxmjtddfxffzy41tdwgf37bw26q8
554120
554119
2026-09-03T08:56:46Z
Persino
2851
554120
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
3u4u07u7w1fdxyz77rxsasit2a9kerv
554121
554120
2026-09-03T09:00:49Z
Persino
2851
554121
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
}
fi4th3by6zrv3cy6n4iy5g8o604b9v7
554122
554121
2026-09-03T09:05:31Z
Persino
2851
554122
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .passek_postępu,
{
filter:invert(100%) grayscale(100%);
}
}
kot9fn1uh5ozeu5d9rt5x7ul592vqtj
554123
554122
2026-09-03T09:06:44Z
Persino
2851
554123
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #passek_postępu{
filter:invert(100%) grayscale(100%);
}
}
dyfck0olvd30bnlg6n49q49ahi6p55z
554124
554123
2026-09-03T09:08:24Z
Persino
2851
554124
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu{
filter:invert(100%) grayscale(100%);
}
}
cgwschh1yotuxpy30qrjv5qrghourbl
554125
554124
2026-09-03T09:10:13Z
Persino
2851
554125
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
iil2qspwuz85bt4ii3jxwrqltksmx3p
554126
554125
2026-09-03T09:11:25Z
Persino
2851
554126
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
2e3xlvhn10zg1pj8giakx7in69afzd3
554127
554126
2026-09-03T09:19:29Z
Persino
2851
554127
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
nm6l4nhkgbwacnna839bqwji7abg74k
554128
554127
2026-09-03T09:24:35Z
Persino
2851
554128
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
p7h81ylg1tjvc1rriioxq3ff6ra7lli
554129
554128
2026-09-03T09:26:42Z
Persino
2851
554129
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
cqnpvdpiwt6cy6xv8385in0vhz5nlts
554130
554129
2026-09-03T09:27:55Z
Persino
2851
554130
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
p7h81ylg1tjvc1rriioxq3ff6ra7lli
554131
554130
2026-09-03T09:31:03Z
Persino
2851
554131
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
go7n73vr4k3zinb2kmah76if9xecqt4
554132
554131
2026-09-03T09:38:55Z
Persino
2851
554132
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
qhboowejz3er9gvlrvzzmqeqz99n6gm
554133
554132
2026-09-03T10:10:50Z
Persino
2851
554133
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll *,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span.hll a linenos,
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight pre > span a:hover .linenos{
background-color: white;
color: black;
border-color:white;
}
}
7ftyufxc1l11ff7v2ndlwgmp9kkq76t
554134
554133
2026-09-03T10:11:25Z
Persino
2851
554134
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body ul.redirectText > li{
background-color:white !important;
}
html.skin-theme-clientpref-night > body ul.redirectText > li a{
background-color:black !important;
color:white !important;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container :not(.redirectText) > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container > *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay):not(.redirectText),
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *:not(img):not(.vector-icon):not(hr):not(br):not(.mw-notification-area-overlay){
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output :not(.redirectText) > *:not(img):not(.redirectText),
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output > *:not(img):not(.redirectText){
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
qhboowejz3er9gvlrvzzmqeqz99n6gm
554137
554134
2026-09-03T11:19:42Z
Persino
2851
554137
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
tcyms2jo8app0az3mn1xql47h5v38ce
554138
554137
2026-09-03T11:29:49Z
Persino
2851
554138
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listBullet,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listNumbered,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-code,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-noWikiText,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-newline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bigger,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-smaller,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-superscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-subscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-imageGallery,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleRedirect,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-table,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayInline{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
}
mmgsti92alujru3gtthydayd1il3rqh
554139
554138
2026-09-03T11:34:38Z
Persino
2851
554139
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listBullet,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listNumbered,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-code,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-noWikiText,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-newline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bigger,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-smaller,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-superscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-subscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-imageGallery,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleRedirect,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-table,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayInline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayBlock{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle{
background-color:unset;
}
}
g03scayuowgrgnocxqngwdg782rem53
554140
554139
2026-09-03T11:37:20Z
Persino
2851
554140
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listBullet,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listNumbered,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-code,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-noWikiText,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-newline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bigger,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-smaller,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-superscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-subscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-imageGallery,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleRedirect,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-table,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayInline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayBlock{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .ͼo .cm-panels.cm-panels-bottom{
border-color:black !important;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle{
background-color:unset;
}
}
2okerzr6yhfwgxcinq4ylf7kng7rc5v
554141
554140
2026-09-03T11:40:59Z
Persino
2851
554141
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listBullet,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listNumbered,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-code,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-noWikiText,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-newline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bigger,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-smaller,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-superscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-subscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-imageGallery,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleRedirect,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-table,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayInline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayBlock{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .ͼo .cm-panels.cm-panels-bottom{
border-top: 1px solid white;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle{
background-color:unset;
}
}
71z9zahy85xe4ybo7p4yw98s6rhaqvr
554142
554141
2026-09-03T11:47:56Z
Persino
2851
554142
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .vector-header-container{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listBullet,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listNumbered,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-code,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-noWikiText,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-newline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bigger,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-smaller,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-superscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-subscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-imageGallery,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleRedirect,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-table,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayInline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayBlock{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .ͼo .cm-panels.cm-panels-bottom{
border-top: 1px solid white;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle{
background-color:unset;
}
}
0xweu7am4w96xtr4bg5qzb4v960kzwx
554143
554142
2026-09-03T11:49:11Z
Persino
2851
554143
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listBullet,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listNumbered,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-code,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-noWikiText,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-newline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bigger,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-smaller,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-superscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-subscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-imageGallery,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleRedirect,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-table,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayInline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayBlock{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .ͼo .cm-panels.cm-panels-bottom{
border-top: 1px solid white;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle{
background-color:unset;
}
}
6fihh3ilur2y9dp9yksxu8z8zijh5s1
554144
554143
2026-09-03T11:58:38Z
Persino
2851
554144
css
text/css
@media screen{
html.skin-theme-clientpref-night > body .vector-dropdown .vector-dropdown-content{
box-shadow:none;
border:1px solid white;
}
html.skin-theme-clientpref-night > body .vector-page-toolbar-container .vector-dropdown{
border-bottom:1px solid black;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision{
background-color:white !important;
z-index:2;
}
html.skin-theme-clientpref-night > body .mw-revslider-revision > .mw-revslider-revision-border-box{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .mw-revslider-revision-tooltip{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons{
border-color:none;
color:white;
background-color:unset;
border-color:unset;
}
html.skin-theme-clientpref-night > body > .vector-header-container,
html.skin-theme-clientpref-night > body > .vector-header-container *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > .vector-header-container a::active{
outline: solid 2px white;
}
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container > .mw-page-container-inner{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-deletedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-deletedline .diffchange{
background: var(--background-color-content-removed,#ffe49c);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body.action-view td.diff-addedline .diffchange,
html.skin-theme-clientpref-night > body.action-submit td.diff-addedline .diffchange{
background: var(--background-color-content-added,#a3d3ff);
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector,
html.skin-theme-clientpref-night > body .imeselector *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body .imeselector .uls-ime-more-settings-link{
height: calc( 100% - 6px );
}
html.skin-theme-clientpref-night > body .uls-ime-menu-settings-item{
padding-bottom:7px;
}
html.skin-theme-clientpref-night > body,
html.skin-theme-clientpref-night > body > .mw-page-container,
html.skin-theme-clientpref-night > body > .mw-page-container *{
color:white;
background-color:black;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog,
html.skin-theme-clientpref-night > body > div.ui-dialog *{
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-titlebar{
background-image:unset !important;
background-color:black !important;
}
html.skin-theme-clientpref-night > body > div.ui-dialog > div.ui-dialog-content > fieldset > div.wikieditor-toolbar-field-wrapper > input:focus{
filter:invert(100%) grayscale(100%);
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > #mw-teleport-target{
filter:grayscale(100%);
}
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output span[typeof="mw:File"] *,
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"],
html.skin-theme-clientpref-night > body > .mw-page-container #mw-content-text .mw-parser-output figure[typeof="mw:File"] *{
background-color:transparent !important;
color:unset !important;
background-color:unset !important;
}
html.skin-theme-clientpref-night > body > .mw-page-container .mw-parser-output img,
html.skin-theme-clientpref-night > body > .mw-page-container .mw-footer-container img{
filter:invert(100%) grayscale(100%) !important;
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a{
z-index:0 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-toc ul.vector-toc-contents li > a:hover,
html.skin-theme-clientpref-night > body .vector-pinned-container .vector-menu ul.vector-menu-content-list li > a:hover,
html.skin-theme-clientpref-night > body .vector-unpinned-container .vector-menu ul.vector-menu-content-list li > a:hover{
background-color:black !important;
color:white !important;
border-color:white !important;
z-index:1 !important;
position:relative !important;
}
html.skin-theme-clientpref-night > body #mw-content-text > div.printfooter{
z-index:1;
position:relative;
}
html.skin-theme-clientpref-night > body .mw-footer-container,
html.skin-theme-clientpref-night > body .mw-footer-container *:not(img),
html.skin-theme-clientpref-night > body .vector-menu-heading,
html.skin-theme-clientpref-night > body .vector-menu-heading *,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu,
html.skin-theme-clientpref-night > body > .mw-page-container div.group > div.tool > div.menu *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body div.uls-rewrite,
html.skin-theme-clientpref-night > body div.uls-rewrite *{
color:white !important;
background-color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu,
html.skin-theme-clientpref-night > body > div.uls-menu *:not(.oo-ui-iconElement-icon),
html.skin-theme-clientpref-night > body > .language-settings-dialog,
html.skin-theme-clientpref-night > body > .language-settings-dialog *:not(.oo-ui-iconElement-icon){
color:white !important;
background-color:black !important;
border-color:white !important;
filter:invert(0%);
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-indent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-outdent,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleSearch,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-settings,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-puzzle,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-reference,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-image,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-link,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-signature,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-italic,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bold,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-article,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-previous,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-tag,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-highlight,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-expand,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-first,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-next,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-last,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-search,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-close,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-menu,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-info,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bookmark,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-ellipsis,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listBullet,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-listNumbered,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-code,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-noWikiText,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-newline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-bigger,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-smaller,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-superscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-subscript,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-imageGallery,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-articleRedirect,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-table,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayInline,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-mathematicsDisplayBlock{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortAscending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-sortDescending,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-pilcrow,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-wrapping,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check-all,
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-gotoLine{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-iconElement-icon.oo-ui-icon-check{
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body span.oo-ui-indicatorElement-indicator{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body .mw-tag-wikieditor,
html.skin-theme-clientpref-night > body .mw-tag-wikieditor *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body input.oo-ui-inputWidget-input{
color: white !important;
background-color: black !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.uls-menu .oo-ui-iconElement-icon{
background-color:transparent !important;
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
top:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel{
background-color:transparent !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .row .uls-display-settings-tab-switcher button,
html.skin-theme-clientpref-night > body > .language-settings-dialog .uls-sub-panel button{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:hover{
background-color:white!important;
color:black !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog .settings-text:not(:hover){
background-color:black!important;
color:white !important;
}
html.skin-theme-clientpref-night > body > .language-settings-dialog #languagesettings-settings-panel{
background-color:transparent !important;
}
html.skin-theme-clientpref-night > body > .vector-header-container #p-vector-user-menu-userpage a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body::selection,
html.skin-theme-clientpref-night > body *::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body::-moz-selection
html.skin-theme-clientpref-night > body *::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .cm-scroller .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .cm-scroller .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line ::-moz-selection,
html.skin-theme-clientpref-night > body .ͼ4 .cm-line::-moz-selection,
html.skin-theme-clientpref-night > body .ͼo.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-selectionBackground,
html.skin-theme-clientpref-night > body .ͼo .cm-content ::-moz-selection{
background-color:white !important;
color:black !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .ͼo .cm-panels.cm-panels-bottom{
border-top: 1px solid white;
}
html.skin-theme-clientpref-night > body hr,
html.skin-theme-clientpref-night > body > .mw-page-container .cdx-message__icon{
filter:invert(100%) grayscale(100%);
}
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons,
html.skin-theme-clientpref-night > body span.ext-discussiontools-init-replylink-buttons *{
color:white !important;
background-color:black !important;
border:0 !important;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content,
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content *{
color:white;
background-color:black;
border-color:white;
filter:invert(0) grayscale(100%);
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content .oo-ui-image-success{
background-color:unset;
}
html.skin-theme-clientpref-night > body > div.mw-notification-area-overlay .mw-notification-content a{
font-weight:bolder;
}
html.skin-theme-clientpref-night > body span.link > a,
html.skin-theme-clientpref-night > body span.link > a:link,
html.skin-theme-clientpref-night > body span.link > a:visited,
html.skin-theme-clientpref-night > body span.link > a:hover,
html.skin-theme-clientpref-night > body span.link > a:active{
color:white;
background-color:black;
border-color:none;
font-weight:bold;
}
html.skin-theme-clientpref-night > body img.mw-logo-icon{
background-color:white;
color:black;
border-color:black;
}
html.skin-theme-clientpref-night > body .cdx-button:enabled.cdx-button--weight-quiet:hover{
background-color: gray;
mix-blend-mode:unset;
}
html.skin-theme-clientpref-night > body .uls-language-actions-close,
html.skin-theme-clientpref-night > body .uls-settings-block--with-add-languages,
html.skin-theme-clientpref-night > body a.mw-logo img,
html.skin-theme-clientpref-night > body span.vector-icon img{
filter:invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-icon{
background-color:white;
}
html.skin-theme-clientpref-night > body a.mw-logo img.mw-logo-wordmark{
background-color:black;
}
html.skin-theme-clientpref-night > body a.mw-logo{
background-color:black;
}
html.skin-theme-clientpref-night > body span.vector-icon{
background-color:white;
}
html.skin-theme-clientpref-night span.tab > a.skin-invert,
html.skin-theme-clientpref-night a.skin-invert.label,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert{
color-scheme:unset !important;
filter:none !important;
}
html.skin-theme-clientpref-night .skin-invert-image img,
html.skin-theme-clientpref-night .skin-invert.label::after,
html.skin-theme-clientpref-night .skin-invert.current::before,
html.skin-theme-clientpref-night .oo-ui-iconElement-icon,
html.skin-theme-clientpref-night .oo-ui-indicatorElement-indicator,
html.skin-theme-clientpref-night div.tabs > span > a.skin-invert::before,
html.skin-theme-clientpref-night label.mw-enhancedchanges-arrow{
color-scheme: light !important;
filter: invert(100%) grayscale(100%) !important;
}
html.skin-theme-clientpref-night input[type="checkbox"]{
color-scheme: light !important;
filter: invert(0) grayscale(100%) !important;
background-color:black;
color:white;
border-color:white;
}
html.skin-theme-clientpref-night input[type="radio"] + span.cdx-radio__icon,
html.skin-theme-clientpref-night input[type="radio"]:hover + span.cdx-radio__icon{
filter:grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body .oo-ui-widget,
html.skin-theme-clientpref-night > body .oo-ui-widget *{
background-color:black;
color:white;
border-color:white;
filter:invert(0%) grayscale(100%);
}
div.vector-main-menu > div.mw-portlet > button.uls-settings-trigger,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor,
html.skin-theme-clientpref-night > body div#mw-abusefilter-examine-editor *,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-pinned-container *,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container,
html.skin-theme-clientpref-night > body div#vector-appearance-unpinned-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container,
html.skin-theme-clientpref-night > body div.mw-rcfilters-container *,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top,
html.skin-theme-clientpref-night > body div.mw-rcfilters-ui-rcTopSectionWidget-topLinks-top *{
color: white !important;
background-color: unset !important;
border-color: white !important;
}
html.skin-theme-clientpref-night > body > div.mw-page-container > div.mw-page-container-inner .mw-highlight > pre{
position:relative;
box-shadow:none;
}
html.skin-theme-clientpref-night > body .mw-search-form-wrapper,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper *{
background-color:black !important;
color:white !important;
border-color:white !important;
}
html.skin-theme-clientpref-night > body .oo-ui-tagItemWidget{
border-radius:unset !important;
height:1.7357em !important;
}
html.skin-theme-clientpref-night > body .oo-ui-fieldLayout-header{
margin-right:0.4em;
}
html.skin-theme-clientpref-night > body .oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button{
background:none !important;
}
html.skin-theme-clientpref-night > body .mw-advancedSearch-fieldContainer,
html.skin-theme-clientpref-night > body .mw-search-form-wrapper .mw-advancedSearch-namespace-selection{
background:none !important;
}
html.skin-theme-clientpref-night > body .oo-ui-checkboxInputWidget [type="checkbox"]{
margin: 1px;
width:1.5em;
height:1.5em;
}
html.skin-theme-clientpref-night > body div.cdx-dialog{
background=color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0) grayscale(100%) !important;
}
html.skin-theme-clientpref-night > body #pasek_postępu,
html.skin-theme-clientpref-night > body #pasek_postępu *{
background-color:black !important;
color:white !important;
border-color:white !important;
filter:invert(0%) grayscale(100%);
}
html.skin-theme-clientpref-night > body .oo-ui-dropdownWidget.oo-ui-widget-disabled .oo-ui-dropdownWidget-handle{
background-color:unset;
}
}
32dfq9d3cr043nnr7nmq4p0llg1r7sl
Wikipedysta:Persino/Gadget-Vector-2022.css
2
64123
554016
2026-09-02T17:14:58Z
Persino
2851
Utworzono nową stronę „@import "/w/index.php?title=User:Persino/vector-2022.css/main.css&action=raw&ctype=text/css"; @import "/w/index.php?title=User:Persino/vector-2022.css/skin-night.css &action=raw&ctype=text/css";”
554016
css
text/css
@import "/w/index.php?title=User:Persino/vector-2022.css/main.css&action=raw&ctype=text/css";
@import "/w/index.php?title=User:Persino/vector-2022.css/skin-night.css &action=raw&ctype=text/css";
52b3uj6lezc9h0k1xphcuk1fqozp6ka
554018
554016
2026-09-02T17:17:44Z
Persino
2851
554018
css
text/css
@import "/w/index.php?title=User:Persino/vector-2022.css/main.css&action=raw&ctype=text/css";
@import "/w/index.php?title=User:Persino/vector-2022.css/skin-night.css&action=raw&ctype=text/css";
hpey5vetu3udlsael6tyyws3xe8hrjz
554027
554018
2026-09-02T18:57:50Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikipedysta:Persino/vector-2022.css]] do [[Wikipedysta:Persino/Gadget-vector-2022.css]], bez pozostawienia przekierowania pod starym tytułem
554018
css
text/css
@import "/w/index.php?title=User:Persino/vector-2022.css/main.css&action=raw&ctype=text/css";
@import "/w/index.php?title=User:Persino/vector-2022.css/skin-night.css&action=raw&ctype=text/css";
hpey5vetu3udlsael6tyyws3xe8hrjz
554028
554027
2026-09-02T18:58:41Z
Persino
2851
Persino przeniósł(-osła) stronę [[Wikipedysta:Persino/Gadget-vector-2022.css]] do [[Wikipedysta:Persino/Gadget-Vector-2022.css]], bez pozostawienia przekierowania pod starym tytułem
554018
css
text/css
@import "/w/index.php?title=User:Persino/vector-2022.css/main.css&action=raw&ctype=text/css";
@import "/w/index.php?title=User:Persino/vector-2022.css/skin-night.css&action=raw&ctype=text/css";
hpey5vetu3udlsael6tyyws3xe8hrjz
554029
554028
2026-09-02T18:59:17Z
Persino
2851
554029
css
text/css
@import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/main.css&action=raw&ctype=text/css";
@import "/w/index.php?title=User:Persino/Gadget-Vector-2022.css/skin-night.css&action=raw&ctype=text/css";
lvxjomv1so21qfgzm2rrw2d42q9e5m0
Śpiewnik/Cicha noc/Muzyka
0
64124
554039
2026-09-02T20:57:25Z
Ashaio
4702
nowa strona z melodią pieśni
554039
wikitext
text/x-wiki
{{T|Śpiewnik/NawigacjaMuzyka}}
== Muzyka z 1924 r. ==
'''Autor:''' Franz X. Gruber
'''Aranżacja:''' autor nieznany
<score raw=1 vorbis=1>
\version "2.19.0"
\header{
title = "Cicha noc"
poet = "Słowa: Joseph Mohr"
meter = "Tłumaczenie: Jan Kubisz"
composer = "Muzyka: Franz X. Gruber"
arranger = "Aranżacja: autor nieznany"
tagline = ""
}
sopran = \new Voice = "sopran" { \stemUp \autoBeamOff
g8.^\pp[ a16] g8 e4.|
g8.[ a16] g8 e4.|
d'4^\p d16[ b] b4. |
c4^\pp c16[ g] g4. |
a4 a8 c8. b16 a8 |
g8. a16 g8 e4. |
a4^\p a8 c8. b16 a8 |
g8. a16 g8 e4. |
d'4^\f d8 f8. d16 b8 |
c4.^( e4) r8 |
c8.^\p[ g16] e8 g8. f16^\pp e8
c4.( c4) r8 \bar "."|
}
alt = \new Voice = "alt" { \stemDown \autoBeamOff
e8._\pp f16 e8 c4. |
e8. f16 e8 c4. |
f4_\p f8 f4. |
e4_\pp e8 e4. |
f4 f8 a8. g16 f8 |
e8. f16 e8 c4. |
c4_\p f8 f8. f16 f8 |
e8. f16 e8 c4. |
f4_\f f8 b8. f16 f8 |
e4._( g4) s8 |
e4_\p c8 b8. c16_\pp c8 |
c4.( c4) s8 \bar "|."
}
tenor = \new Voice = "tenor" { \stemUp \autoBeamOff
g4^\pp g8 g4. |
c'4 c'8 g4. |
b4^\p b16[ d'] d'4. |
c'4 g16[ c'] c4. |
c'4 c'8 a8. b16 c'8 |
c'8. c'16 c'8 g4. |
a4^\p c'8 c'8. c'16 c'8 |
c'8. c'16 c'8 g4. |
b4^\f b8 d'8. b16 d'8 |
c'4.( c'4) r8 |
g4^\p g8 g8. g16^\pp f8 |
e4.( e4) r8 \bar "|."
}
bas = \new Voice = "bas" { \stemDown \autoBeamOff
c4_\pp c8 c4. |
c4 c8 c4. |
g4_\p g8 g4. |
c4 c8 c4. |
f4 f8 f8. f16 f8 |
c8. c16 c8 c4. |
f4_\p f8 a8. g16 f8 |
c8. c16 c8 c4. |
g4_\f g8 g8. g16 g8 |
c4.( c4) s8 |
c4_\p c8g,8. g,16_\pp g,8 |
c4.( c4) s8 \bar "|."
}
liryka = \lyricmode {
Ci -- cha noc, w_gó -- rze skrzy
mnó -- stwo gwiazd, wszy -- stko śpi;
lecz z_ócz Ma -- ry -- ji od -- le -- ciał sen:
w_świę -- tej ci -- szy Naj -- wy -- ższe -- go Syn
le -- ży na ło -- nie jej,
le -- ży na ło -- nie jej.
}
\score{
\new ChoirStaff
<<
\new Staff = "RH" \with {midiInstrument = "fiddle"}
\relative f' {
\clef treble
\key c \major
\time 6/8
<<
\sopran
\alt
>>
}
\new Lyrics \lyricsto "sopran" \liryka
\new Staff = "LH" \with { midiInstrument = "cello" } {
\clef bass
\key c \major
\time 6/8
<<
\tenor
\bas
>>
}
>>
\layout{}
\midi{ \tempo 4 = 75}
}
</score>
'''Źródło:''' ''[https://www.sbc.org.pl/dlibra/publication/edition/322752 Melodje do Hary Syjońskiej wydania trzeciego]''. Cieszyn, 1924. S. 11–12 (pieśń 27).
dukz64o7id29vn4inf3zrmcqjzdvign
554040
554039
2026-09-02T20:57:51Z
Ashaio
4702
lit.
554040
wikitext
text/x-wiki
{{T|Śpiewnik/NawigacjaMuzyka}}
== Muzyka z 1924 r. ==
'''Autor:''' Franz X. Gruber
'''Aranżacja:''' autor nieznany
<score raw=1 vorbis=1>
\version "2.19.0"
\header{
title = "Cicha noc"
poet = "Słowa: Joseph Mohr"
meter = "Tłumaczenie: Jan Kubisz"
composer = "Muzyka: Franz X. Gruber"
arranger = "Aranżacja: autor nieznany"
tagline = ""
}
sopran = \new Voice = "sopran" { \stemUp \autoBeamOff
g8.^\pp[ a16] g8 e4.|
g8.[ a16] g8 e4.|
d'4^\p d16[ b] b4. |
c4^\pp c16[ g] g4. |
a4 a8 c8. b16 a8 |
g8. a16 g8 e4. |
a4^\p a8 c8. b16 a8 |
g8. a16 g8 e4. |
d'4^\f d8 f8. d16 b8 |
c4.^( e4) r8 |
c8.^\p[ g16] e8 g8. f16^\pp e8
c4.( c4) r8 \bar "."|
}
alt = \new Voice = "alt" { \stemDown \autoBeamOff
e8._\pp f16 e8 c4. |
e8. f16 e8 c4. |
f4_\p f8 f4. |
e4_\pp e8 e4. |
f4 f8 a8. g16 f8 |
e8. f16 e8 c4. |
c4_\p f8 f8. f16 f8 |
e8. f16 e8 c4. |
f4_\f f8 b8. f16 f8 |
e4._( g4) s8 |
e4_\p c8 b8. c16_\pp c8 |
c4.( c4) s8 \bar "|."
}
tenor = \new Voice = "tenor" { \stemUp \autoBeamOff
g4^\pp g8 g4. |
c'4 c'8 g4. |
b4^\p b16[ d'] d'4. |
c'4 g16[ c'] c4. |
c'4 c'8 a8. b16 c'8 |
c'8. c'16 c'8 g4. |
a4^\p c'8 c'8. c'16 c'8 |
c'8. c'16 c'8 g4. |
b4^\f b8 d'8. b16 d'8 |
c'4.( c'4) r8 |
g4^\p g8 g8. g16^\pp f8 |
e4.( e4) r8 \bar "|."
}
bas = \new Voice = "bas" { \stemDown \autoBeamOff
c4_\pp c8 c4. |
c4 c8 c4. |
g4_\p g8 g4. |
c4 c8 c4. |
f4 f8 f8. f16 f8 |
c8. c16 c8 c4. |
f4_\p f8 a8. g16 f8 |
c8. c16 c8 c4. |
g4_\f g8 g8. g16 g8 |
c4.( c4) s8 |
c4_\p c8g,8. g,16_\pp g,8 |
c4.( c4) s8 \bar "|."
}
liryka = \lyricmode {
Ci -- cha noc, w_gó -- rze skrzy
mnó -- stwo gwiazd, wszy -- stko śpi;
lecz z_ócz Ma -- ry -- ji od -- le -- ciał sen:
w_świę -- tej ci -- szy Naj -- wy -- ższe -- go Syn
le -- ży na ło -- nie jej,
le -- ży na ło -- nie jej.
}
\score{
\new ChoirStaff
<<
\new Staff = "RH" \with {midiInstrument = "fiddle"}
\relative f' {
\clef treble
\key c \major
\time 6/8
<<
\sopran
\alt
>>
}
\new Lyrics \lyricsto "sopran" \liryka
\new Staff = "LH" \with { midiInstrument = "cello" } {
\clef bass
\key c \major
\time 6/8
<<
\tenor
\bas
>>
}
>>
\layout{}
\midi{ \tempo 4 = 75}
}
</score>
'''Źródło:''' ''[https://www.sbc.org.pl/dlibra/publication/edition/322752 Melodje do Harfy Syjońskiej wydania trzeciego]''. Cieszyn, 1924. S. 11–12 (pieśń 27).
ru37irb2p94ojgpp6rgbi0fe2fn2yxm